(716) 834-1716 (716) 834-1716
Call or write for a fre for a free catalog of products for the Timex Computer
GOTE SGFIWAR
PAE AER Oe Summer Westcoast TS Falr Special
© for Centronics parallel printers
* works in both 2068 and Spectrum mode
* compatible with OS-64 & Spectrum emulators
© EPROM socket and on/off switch on board
* works with both Tasman and Acrecodriver software
® plugs into cartridge dock—door completely
closes with cable running back under computer
© frees up rear edge connector allowing other
peripherals to be used; less chance of a crash
© print driver software for LPRINT, LLIST, and
COPY included for 2068 and Spectrum modes
FootePrint Interface w/software & cable $39.95
FootePrint with OS-64 option included $60.00
Bare board & instructions only
Cable only for use with bare board . z
Zero Insertion Force Socket option add $8.00
SOFTWARE TS2068 TS1000 ‘The Best of SUM
_ Some sample articles include: Building Your Own
Badgammon (Beckgammon)........ Spectrum Emulator, Repairing Your TS-1000, Word
Processing Reviews for the 2068, UDGs on the TS-
1000, Extensive Review of the Zebra Disk System,
* Adding a Keyboard to the 2088, and Enhancing the
$8. 2 Se A&JMicrodrive. 112 pages” :
( ‘generator) $10.00 $10.00
Hangman & TC TAC TOR, ih - $5.00
‘The Best of SUM, Part I!
Articles include Building an EPROM Program-
FOOTE 'X%, SOFTWARE rer Susie kar toa
P. (ey Box 14655 TK rocessing, at's Available for I,
id sh 0
Gainesville, FL 32604 pik oiaae pe.
(90%) 338-1273 <9AM-SPM EDT) $7.00
All prices are pre-paid and include shipping charges.
Florida residents must add state sales tax. both for #15.00
SEE THE 7INE DESIGNS AND FOOTE SOFTWARE BOOTHS
AT THE NORTHWEST AND MID—-WEST TIMEX SINCLAIR SHOWS!
| me
pGilcia
The SINCLAIR
Computer Technology
Magazine
JULY/AUGUST. ’88
(EMME EREEREREREEREEREEEE
Time Designs Magazine Company
29722 Hult Road
Colton, Oregon 97017
USA
(803) 824-2658
CompuServe iD# 71350,3230
BACK ISSUES
TIME DESTENS
#E VOLUME TWO CLOSEOUT XK
(lintted quantity in stock)
$2.50 each, or 3 issues for only $6.00
NOV/DEC *85 “OUT - 0.1)
gans— oid OUlno.2)
MAI
RL 86 (Vol.2 No.3)
MAY/JUN *86 (Vol.2 No.
JUL/AUG "86 (Vo1.2 No.3)
SEP/OCT "84 (Vol.2 No.6)
¥X VOLUME THREE ISSUES xX
(planty of thease In stock?
$3.00 each, or 3 issues for only $8.00
NOV/DEC "86 (Vol.3 No.1)
JAN/FEB °S? (Vol.3 No.2)
MAR/APR *87 (Vol.3 No.3)
MAY/JUN *87 (Vol.3 No.4)
JUL/AUG *87 (Vol.3 No.5)
SEP/OCT *87 (Vol.3 No.6)
VISA and
Lia MASTERCARD
ACCEPTED
TIME DESIGNS MAGAZINE Co.
29722 Hult Rd., Colton, OR 97017
TIME DESIGNS MAGAZINE is published bi-monthly and
is Copyright 1988 by the Time Designs Magazine Com-
pany, Colton, Oregon 97017. All rights reserved.
Reproduction of this magazine in whole or in part by any
means without written permission is prohibited by law.
SUBSCRIPTIONS: $16.95 a year for six Issues (U.S.
funds only), mailed in the U.S. All other countries
please write for information on surface and air mail rates,
CUSTOMER SERVICE: Customer satisfaction is our
goal. For subscription service problems, or any ques-
tions and comments, please write or call.
CHANGE OF ADDRESS: Please call or write our office if
there is any change in your current mailing address to
Prevent delay or even loss of service. ~
RENEWAL TIME? To determine your expiration date,
simply read the date posted in the upper-right corner of
your mailing label (magazine cover). For an example,
“Now89" would indicate that the November/December
1989 issue would be the last issue received. A form is
provided elsewhere to renew your subscription. We also
send one notice in case you forget. An early renewal is
very much appreciated, and let us know we are doing an
adequate job.
NOTICE: Contributors to TIME DESIGNS are independent cf the TIME !
DESIGNS MAGAZINE CO, and opinions expressed Inthe contents ini |
publication are not necessarily those of the management staff or its adver-
ducts or companies provided in the magazine's cont
that anyone attempting to modiy their computer or constructing an elec-
tical project should seek help trom more knowledgeable individuals,
f ORDER LINE
(503) 824.2658
Sinclair Survivalist
HANDBOOK
The Sinclair Survivalist Handbook is
anew 70 page book that is filled
with a n=)
gram listings and articl
by regular contributor's
DESIGNS, for the 1S1000/Zx81,
TS1500, TSZ068, and the Sinclair 6L.
Examples include: “Adapting ext
keyboards to your 181000:
Line Delete Utility", "Strategic
Football*, 1S2068 Space
Bar", "OS-64 Utilities’, “Little
League Scheduler", “Homemade ROM-
Poker", "QL Super-
*, "Using Quill With
The GL Printer", ‘Inside the @L*,
and much more! If you like TIME
DESIGNS...you’}1 like this new
book. Order your copy today!
9.95
READER SURVEY RESULTS
Part One
Over 280 TIME DESIGNS readers responded to our
recent survey. Which is approximately 11 percent of
our circulation. Some of the results were most in-
teresting. The rest of the results will conclude next
issue. We sincerely hope that this data will provide
developers of hardware and software, and the Timex
Sinclair dealers with a better understanding of our
TS user community.
Average Age of TDM Subscriber: 45
Oldest Reported Age: 79
Youngest Reported Age: 22
Male/Female Ratio: 22 Male/1 Female
States of Highest TS User Concentration:
California
New York
Pennsylvannia
Florida
Texas
Ohio
Tllinois
Virginia
Michigan
10 Most Common Occupations of TS Users:
1. Retired
2. Engineer
3. Electronic Technician
4. Supervisory/Management
5. Student
6. Instructor
7. Consultant
8. Military
9. Sales
10. Librarian
Top 5 Hobbies of TS Users:
1. Computers
2. Electronics
3. Photography
4. Amateur Astronomy
5. Gardening
Computer Used The Most:
1. TS2068
2. TS1000
3. QL
4. IBM (or compatible)
5. Commodore 64
wnevninneseeeseseaevncrcevectreteicvasneneaecacieinaecnceeantene 2
Other Computer Owned:
1. TS1000
2. TS2068
3. 2X80
4. 791500
5. QL
Most Popular Printer:
1. 2040 Thermal Printer
2. Gorilla Banana
3. Epson RX-80
4, Star NX-10
5. Panasonic KXP-1080
Most Popular Mass Storage Device Used:
1. Cassette Tape
2. Floppy Disk
3. Microdrive Cartridges/Wafers
4. EPROMs
Most Popular TS2068 Disk Systems:
1. Aerco FD-68
2. Larken LKDOS
3. Zebra FDD
4. Oliger SAFE DOS
5. Ramex MK
5 Most Popular Monitor Devices:
1. Color and B/W TV
. Magnavox RGB
Zenith
Sanyo
Commodore
uo dbwWN
‘vuseacereenvcceponeeagegaeezOECLGLOUEAOAUUUANGEUELUAAEOANEDOUTRROU OUGHTA
If only TIME DESIGNS were printed in color! Then
we could show you what the actual "Sir Clive" screen
dump (above) really looks like. It was produced using
a program called THE ARTIST, a TS2068 computer, an
OKIMATE 20 Color Printer, and a special interface and
printing utility software.
To back-track just a bit...a couple of years
ago, a puzzled TDM subscriber sent a letter to the
editor, and posed the question whether the OKIMATE 20
could be used with the 2068. Seems that the Okimate
was configured to operate with "most popular brands"
of personal computers, with optional "Plug 'n Print"
interface/software packages...all of the brands,
except the Timex (of course).
Thanks to the research and development of John
McMichael (who also adapted an inexpensive Commodore
Plotter to the 2068), Timex users no lorger have to
face discrimination. Using the Okimate 20, the
Commodore "Plug 'N Print" package, and John's new
“Commodore serial port emulation circuit board", high
quality screen dumps can now be enjoyed in color.
John also offers several print utility programs to
help get the job done.
Not only is the Okimate 20 a good color printer,
but it is also suited for normal printer use
(including NIQ mode)
Information about the interface, and related
2068 software can be obtained by sending a legal SASE
to: John McMichael, 1710 Palmer Drive, Laramie, WY
82070.
The Okimate 20 must be purchased elsewhere, and
is available everywhere. Try Sears, Target. Best, or
Lyco Computer Inc. (1-800-233-8760). Typical discount
price for printer and “Plug ‘n Print" package is
right around $180.
iti
Another frequently requested device for the
752068 is a MIDI Interface. MIDI stands for ‘Musical
Instrument Digital Interface". Which is the means for
hooking up electronic synthesizer keyboards, drum
boxes (and much more) to your computer. Other
computer brands like the ATARI ST and IBM PC are very
strong in the area of MIDI support, both hardware
and software.
MIDI FOR THE 2068
TIMEX SINCLATR NEWS
MIDI is an invaluable tool for music students,
composers, and live performers. And since MIDI is a
word-wide industrial standard among electronic music
instrument manufacturers and computer manufacturers,
it wouldn't matter if you had an ATARI or a SINCLAIR,
the hardware compatibility should be the same.
Recently, Richard Hurd, ‘a TDM subscriber and
occasional contributor wrote, "I have had success
implementing MIDI on my TS2068. I also would be happy
to hear from anyone interested in this."
Richard has ed =RAM Electronic's MUSIC
MACHINE, a MIDI interface for the Spectrum, from
England (see review in the November '86 issue of ZX
Computing), and also some accompanying MIDI software
from a company called QUASAR. To operate the Spectrum
hardware and software on the TS2068, Richard pur—
chased John Mathewson's "Twister Board" for the rear
expansion bus, and also used a Spectrum emulator.
For further details, addresses, and even tips on
ordering from Great Britain, send a SASE to: Richard
Hurd, PO Box 153, Warrenton, OR 97146.
WHERE GOEST FRED? ?
Fred Nachbaur, formally of Nelson, British
Columbia, Canada, and highly-respected authority on
Sinclair computers, has taken several new turns. Most
recently, he has accepted a position with a firm in
Ottawa, and will be turning his TS1000/ZX81 product.
line over to other Timex Sinclair dealers.
Fred's own company, Silicon Mountain Computers,
will be renamed "Silicon Mountain Electronics”,
which, as the name implies, will pursue avenues of a
more general electronic nature as well as computers.
As a former TS software/hardware producer and
supplier, Fred found that he lacked critical time and
funding for development of various special projects.
including one particular project...a new type of
computer’.
Fred recently told TIME DESIGNS that, "It should
be clearly understood, however, that this project is
by no means a certainty at this point. It's not be~
cause of the infamous "big IF", rather it depends on
a whole lot of “little if's". I have carefully chosen
a core of potential developers who have expressed an
interest to investigate the potentials; IF ve all
agree on the route to take; IF we all find the time
to do our parts; IF the economics fall into place; IF
the result of our brain-pooling results in a
marketable product; IF no one comes up with a better
mouse before we build a better trap...then there will
be a new computer. But don't believe anything you
hear, unless you hear it from us. If it does happen,
it will not be, as rumour has it, a Timex "clone".
The new machine will have some common features, such
as elegance in simplicity, but a new machine in its
own right.”
Fred wants everyone to know that he will
continue to be involved with the 2X81 family of fine
computers; as a user, writer, and hacker, but not as
a commercial supplier of TS software.
SECRET STUFF
Nigel Searle, a close associate of Sir Clive
Sinclair for over sixteen years. announced to the
General Assembly of the Boston Computer Society, on
June 22, that Sir Clive was involved in developing
some highly secretive computer equipment, and that he
(Sir Clive) would personally announce detailed plans
of the project and launch it world-wide at an
upcoming BCS meeting.
The only speculation and possible clues about
the new computer equipment are coming out of the
British press. Supposedly, Sir Clive is developing a
new desktop computer based on transputer chip tech-
nology, similar to the INMOS transputer, only Sir
Clive felt that the INMOS was unsuitable for his
project, and went out and developed his own
transputer. The new desktop will reportedly out~
perform any PC technology currently available,
processing data more than 10 times faster than an IEM
AT. The new machine will be marketed under the
CAMBRIDGE COMPUTER LTD label, just as the Z68 Laptop
is.
CLEVELAND
Saturday, August 27 and Sunday, August 28, marks
the date for the upcoming MIDWEST SINCLAIR COMPUTER
CONFERENCE, which will be held at the Beck Center in
Lakewood, Ohio (a suburb of Cleveland) .
The Conference will feature TS exhibitors like
Zebra Systems Inc., Sharp's Inc., Time Designs, and
others; as well as seminars by Bill Ferrebee, James
DuPuy, Basil Wentworth, Dave Hoshor, Thomas Simon,
and others.
For complete details, info on accomodations
available in the area, pre-registration forms, and
more, semi a SASE to: Andy Kosiorek, 2192 Glenbury
Ave., Lakewood, OH 44107. For alternate information
contact: James DuPuy, 6514 Bradley Ave (down), Parma,
OH 44129, (216) 661-4105.
If you live in Ohio, any of the surrounding
states, the midwest proper, Ontario (Canada), most
anywhere on the eastcoast and southern states (or
anywhere!) ...come to the show and exchange ideas and
information with fellow Timex Sinclair users.
NEW RELEASES
PODNUH is a clever name for a new 152068
program, which has been thoroughly tested since its
conception in 1985. This Machine Code program in-
cludes a BASIC programmer (called "Supra-Basic") with
a swift and reliable method of passing parameters to,
and calling other Machine Code programs. These
“other” programs may be customized routines,
extensions of BASIC, utility programs, or complete
applications programs. A PODNUH (version 1) package
is available for $17.00 + $2.00 postage, which in-
cludes selectable type fonts, a perpetual calendar,
note pad. scientific caiculator, and more. "Add-On"
options will continue to be added, such as WYNN DOE
(a windowing utility) for $5.00. The author is
also interested in sharing his program with pro-
grammers or user groups, ami is offering a
disassembled listing with documentation for $1.00,
with the hope that PODNUH is adopted as a new 2068
standard. Send check or money order to: Ron Ruegg,
37529 Perkins Road, Prairieville, LA 70769.
Many Timex fans have heard or read about the
research that William J. Pederson of THE WIDJUP 00.
has conducted on the TS2068 ROM/Operating Systen,
from articles in several user group newsletters and
magazines. Now there is a 160 page book by Mr.
Pederson called "TOURING THE TS2068 ROM OPERATING
SYSTEM". While this type of book isn't for everyone.
it will be of interest to programmers and 2068
hacker-types everywhere. It contains a complete
annotated disassembly of the Home ROM and the XROM,
along with several other tables of data. Mr. Pederson
offers a theory which one may or might not accept
about the development of the Timex ROM ard bank-
switching routines...but it all makes for interesting
reading. The book is priced at $20.00 + $3.00 postage
and is available from: The WIDJUP Co., 1120
Merrifield S.E., Grand Rapids, MI 49507.
Arnold Ramaker, PO Box 263, Plymouth, WI 53073,
(414) 893-8865, is busy designing an expansion box
for the ZX81, TS1000, TS1500, 152068, and Sinclair QL
computers. Any one of the computers can be placed
inside the supplied case. The expansion box will
feature multi-expansion slots and provisions for
attaching a monitor, and several other peripherals.
Mr. Ramaker would like to hear from folks who are
interested in purchasing an expansion box like this,
to get an idea on what price range and any additional
features people would like to see incorporated.
Matthew Zenkar, 142 Holcroft Rd., Rochester, NY
14612, (716) 663-2048, is offering a utility program
which will allow QL owners who use the Digital Pre-
cision Desktop Publisher software package, to dump
their files to Hewlett Packard-compatible laser
printers, Write for information and price.
The S.A.I.N. (Sinclair Artificial Intelligence
Network) special interest group is now forming. It is
for any Sinclair user interested in A.I., Micro-
PROLOG, LISP, and other related topics. For further
information, send a SASE to: Pete Fischer, PO Box
2002, Tempe, AZ 85281, or call the TIMEWARP BBS,
(617) 481-0555 (setting: 8/1/N. 300 baud) .
LARKEH PRESENTS: a
UP TO 256K RAM for your 2068
> Expand your 2068 with up to 256K of battery backed up Raa
- Larken Operating system lets you SAVE to memory, just like
cassette or disk. (Floppy disk not required )
- All Cassette commands supported. Very Fast and Reliable .
- Can be used with ALL existing 2068 or Spectrum software.
- Uses the new 32K static ram chips, 62256LP or 43254LP
~ System consists of Larken Cartridge and Rear Meaory Board.
#% PRICE ~ MEMORY SYSTEM with 64K Ram . = $129.00
~ MEMORY SYSTEM with 0 K - + $5.00
LARKEN 2068 FLOPPY DISK SYSTEM
~ The wost advanced Dos available for the 208/Spectrum . LKdos
uses ALL Commands such as CAT MERGE ERASE LOAD SAVE PRINT OPEN
etc. Also can support RAMDISK up to 254K and Sequential / Random
Access Files (with additional software). “The Larken Disk
Interface can handle up to 4 floppys for up to 3.2 MegaBytes of
storage. Also NMI Snapshot Save Button and KEMPSTON Joystick
port on interface Also 10 Extended Basic commands for Windows
and Graphics.
AERCO RAMEX or OLIGER Disk users can add Lkdos for aore
commands, Raadisk and access to all Lkdos software
## PRICE - Larken Floppy Disk System ..sssreceree $119.95,
- Floppy Disk IF with 0 K Memory board
- Larken Disk Editor .
~ Sequential/Random access files +
- Xnodes to Disk Modem package . $
= X-B1 Floppy Interface (15 left)... $
~ LKDOS for Aerco,Rasex or Oliger Disk IF $
{All prices are US , Add 6$ Shipping )
LARKEN ELECTRONICS RR#2 NAVAN ONTARIO CANADA K4B-1H?
(613) -B35-2680
"2X... PHONE HOME!"
)* — A T$1000/TS1500/2%81 Program
To Help Remember Telephone Numbers
by David Hartman
The following program develops words based on
oo Those users with a 16K TS1000/ZxX81, should end
PA Sea en te teeta pple ee up with "13505" printed on the screen, after entering
cadarvthen tnéctoce weabeeen Temembered <8: 8) word» the following line: PRINT (PEEK 16388 + 256 * PEEK 16
pci) Sri tioesia ad : 389) - (PEEK 16396 + 256 * PEEK 16397)
This program will run on a TS1000 or 2X81 with a If “"ia808" ia your -anawer, then you have aot
16K RAM pack installed. or on a TS1500. This program likely typed in the program listing correctly
should also work with a 1TS2068, with only minimal .
changes to the program.
Line Uses:
1-24: Opening screen
25-40: Instructions and input
VARIABLES?
50-70: Check for ‘1’ and "07 n$! Holds entered phone number
80: See 8000 w$: Holds all possible letter combinations
110-200! Assemble words by slicing 1$: Holds telephone dial information
202-255! Print results on screen ft Flag indicates if a ‘1’ or a ‘0’ is in the number
260-310! Copy and continue (Important to know because 1 and 0 do not have assigned letters)
300-575: Assemble words if a ‘1’ or 'O" are involved x? Increment control
600-640: Re-establish phone number for printing ds Ky Ly mt For/Next control
5010-5040! Initialize, set up arrays
8000-8040: Not useful message
1 REM WORDS FROM TELEPHONE NUMBERS
2 REM 105/1.1 3/20/88
7 SLOW
8 CLS
10 PRINT AT 6,0;"WORDS FROM TELEPHONE NUMBERS" AT 14,0
BER SPELLS"
15 PRINT AT 21,03"(C) 1988 DAVID HARTMAN"
20 GosuB 5000
22 FOR J=1 TO 60
24 NEXT J
25 CLS
27 PRINT TAB €3"TELEPHONE WORDS", ,,
30 PRINT "ENTER THE LAST FOUR DIGITS OF YOUR TELEPHONE NUMBER TO SEE", “WHAT
THEY SPELL. THEN, USE THAT WORD WHEN SOMEBODY WANTS YOUR", "NUMBER. THEY PROBABLY
WILL 'BE","ABLE TO REMEMBER iT WITHOUT",*WRITING IT DOWN."
40 INPUT NS
43. IF LEN N#<4 THEN GOTO 90
45 LET F=0
50 FOR J=i TO 4
65 IF NS(J)="1" OR NS(J)="0" THEN LET F=F+i
“LETS SEE WHAT YOUR NUM
67 IF NS(J)="1" THEN LET N&(J)="Q" 205 GOSUB 400 7
68 IF NS(J)="0" THEN LET N&(J)="Z" 210 PRINT "HERE ARE THE CHOICES FOR "3N$
70 NEXT J 212 PRINT F
80 IF F>1 THEN GOTO 8000 215 LET J=1 :
85 GOTO 110 220 FOR K=J To J+5
90 PRINT AT 15,0;"YOU DID NOT ENTER A 4 DIGIT*, 225 IF K=8Z THEN GOTO 240
“NUMBER. PLEASE TRY AGAIN. * 230 PRINT WS(KI5". "5
93 FOR J=1 TO 60 240 NEXT K
97 NEXT J 245 PRINT
100 GOTO 25 230 LET J=K
110 LET X=1 255 GOTO 220
115 FAST 260 PRINT AT 21,05"(C) COPY?"
120 FOR J=i To 3
270 INPUT AS
130 FOR K=1 To 3 280 IF AS<>"C* THEN GOTO 25
140 FOR L=i To 3
290 PRINT AT 21,03" .
150 FOR M=1 TO 3 300 copy
153 IF F THEN GOTO 500 310 RUN
167 LET WS(X)=LS(VAL NS(1),J)4+LS(VAL NS(2), Soe) Fest Tale BHR Cae Gucuset Bes boa ae
ike Sad. Nets YL L8 (VAL: NCO} SH) (27,5) #L8(VAL_NS(3)5LI+LS (VAL NS(4) 9M)
es hh S15 IF NSC1)="Q* THEN LET WS(X)="1°+LS(VAL NS
180 NEXT L (2) sKI+LS(VAL NSCS) sLI4LS (VAL NEC4 14M)
190 NEXT K 520 IF NS(2)="Z" THEN LET WS(X)=LS(VAL NS(1),
200 NEXT J DFMO FLS(VAL NS(3),LI4LS (VAL NSC4).M)
202 CLS
203 SLOW 5
530 IF NS(2)="Q" THEN LET WSQO=LS(VAL NS(1), 5020 LET
DVM LSCVAL NSCS) LIFLSCVAL NS(H 9D 50zz LET Boe
540 IF N$(3)="Z* THEN LET WS(X)=L$(VAL NB(1), 5024 LET “DEF
SJVFLS (VAL NB(Z) + KETO" +L ECVAL NS(4) 4M) a02e EY SHE
550 IF N$(3)="Q" THEN LET W$(X)=LS(VAL NS(1)5 uae tel pet
4S (VAL NS(2),K)4" LT HLSCVAL NSA) MD 5032 LET * PRS"
560 IF NS(4)="Z* THEN LET WS(X)=LS(VAL NS(1), 5034 LET L$(@)="TUV"
D4LS (VAL NS(2),KO4LS(VAL NS(3),L) +40" 5036 LET L$(9)="uxy"
570 IF NS(4)="Q" THEN LET WS(X)=LS(VAL NS(1), 5038 LET L$(10)=
D)4LS(VAL NS(Z),KO+LS(VAL NS(3)5L) #11" acoo Gs
575 GOTO 169 8005 GOSUB 600
580 STOP 8010 PRINT AT 14,03"YOUR NUMBER, "iN$5"» HAS
600 FOR J=1 TO 4 TOO MANY ONES OR ZEROS TO BE USEFUL
610 IF NS(J)="Q" THEN LET NS(J)="1" IN CREATING A WORD....SORRY ABOUT THAT,"
620 IF N$(J)5"Z" THEN LET NS(J)="0 8020 FOR J=1 TO 100
630 NEXT J
640 RETURN — wero 2s
5010 DIM L$(10,3) 8999 STOP
5015 DIM W#(81,4) 9000 SAVE “TELEWORDS*
9010 RUN
STUD POKER
A Casino-Style Game Listing For The TS?068
by William C. Andrews
This is a TS 2068 program ta play FIVE CARD STUD POKER
against the computer, the dealer. After an ante you bet on each
card dealt. The dealer matches your bet. You may go out at any
time by betting "9". You must pay to see the hole card if
needed. The dealer is also the banker and will keep track of the
game’s progress.
When typing the program please note that letters in
quotes in lines 6910, 6930, 6950, 6149, 7020, 9991 and the last
letter in lines 8001 to 852 are in GRAPHIC mode for UDG’s. Line
9992 clears color from the screen for working on the program.
Line 6999 selects cards randomly and line 6119 pre
duplication. Cards are shuffled for each game.
255 GO TO 300
268 NEXT Ki GO TO 400
262 LET P(3)8V: LET X#(3)=AS(F,
nts 4)1 RETURN
265 LET P(4)—Vi LET X8(4)=A8(F,
4): RETURN
For a tape of this program send $ 19.99 pp to me at 30 268 LET P(S)=Vi LET X®(S) <AS(F,
eak Knoll Drive, San Anselmo, CA. 94968. 4). RETURN
3@0 FOR 1=18 TO 24 STEP 3
310 LET AwT
19 LET ST=198
15 IF sT<90 THEN GO TO 4670
2@ BORDER 4: PAPER 4: CLS: LE
T T=@: GO SUB 8gaa
25 PAPER 71 FOR Ne? TO 14: PRI
NT AT N,ee"
“a NEXT N
30 LET PRe@: LET DR=@: LET PL
@: LET DL=@: DIM X#(4)s DIM Y(6
>
3S RANDOMIZE
4@ PRINT PAPER 43" ") PAP
ER 2) INK 9; ERIGHT 1;AT 0,55" F
IVE CARD STUD POKER "3 BRIGHT 3
PAPER 4)" 7
45 INK 1
SO LET KS =" ee
SS LET L$=
6@ PRINT PAPER 4;K8
65 PRINT "£"; INK @}" YOUR HA
ND DEALERS HAND "s INK 15"
7@ PRINT AT 3,@)L8;AT 3,0)"0"5
aT 3,315"5"
75 FOR I= 10 6
Q@ PRINT "A";TAB Sis" M"STAB S
1p TAB Siz" 8
@5 NEXT IT
9@ FOR I=2 TO 14
95 PRINT AT 1,15} PAPER 7; "9"
1@@ NEXT I
195 PRINT PAPER 4;L$
110 FOR N=1é TO 21: PRINT AT N,
@; PAPER 43"
“y NEXT N
115 GO SUB 4950
120 INK @
125 LET Peo: LET D=o
130 PRINT FLASH 13 PAPER 6;AT
17,13)" ANTE ": GO SUB 4779
135 PAUSE 6
140 LET H=O: LET A=2: LET Bear
GO SUB 6900
145 LET P(i)=V: LET X#(1) =AS(F,
4)
15@ LET A=: GO SUB 6998
155 LET P(2)eVe LET X$(2)RAS(F,
4)
16@ LET H=i: LET A=16: GO SUB 6
oe
165 LET H=@: LET A=24: GO SUB 6
220
170 LET Aw2: LET D(2)=V1 LET ve
(2)=A6 (F, 4)
175 GO SUB 4900
162 GO SUB 4750
200 LET B=8
210 FOR K=2 TO @ STEP 3
228 LET AsK
230 GO SUB 4909
240 GO SUB 260+K
250 GO SUB 4090+ (Ks19)
281 GO SUB 4289
252 IF K>? THEN GO TO Isa
6
320 GO SUB 4000
330 GO SUB 348+((1/3)-5)
34@ GO SUB 4300+(1+2)
345 IF 1=24 THEN IF DR>=i AND
DR>=FR AND DL>PL THEN GO TO Sii
8
350 GO SUB 4750
355 GO TO 2460
358 NEXT I;
36@ GO TO 490°
361 LET D(S)=¥i LET YS(S)=AS(F,
4)1 RETURN
B62 LET D4) "V1 LET Y8(4)=AS(F,
4)4_ RETURN
363 LET DiS) avi LET Y8(5) =AS(F,
4)1 RETURN
400 LET Be4: LET A=i8
410 GO SUB 6999
420 LET D(1)=Vi LET Y®(1)©AS(F,
430 GO SUB 4400
435 GO SUB 4630
449 GO TO Seeo
1988 DIM A(S)s FOR N=1 TO S
1918 LET A(N) =F (N)
1020 NEXT Ne GO SUB 1150: RETURN
1030 DIM A(5): FOR N=t TO 5S
1@35 LET ACN) =D(N)
114@ NEXT Ni GO SUB 1150: RETURN
1150 LET STR=@: FOR Nei TO 4
1168 FOR M=1 TO S-N
1170 LET C=acM)
1180 LET Deacm+1)
1198 IF CémD THEN GO TO 1220
1200 LET A(M) =D
1219 LET A(M+1) aC
1220 NEXT M
1230 NEXT N
1248 FOR N=2 TO 5
1250 IF A(N)SA(N-1)41 THEN GO T
0 1270
1260 return
1270 NEXT N
1280 LET STR=i: RETURN
3999 STOP
4@0O IF P(2)=P(1) THEN LET PLeP
(2) GO TO 4150
401@ RETURN
4@20 IF F(S)=P (1) OR P(3)=P(2) T
HEN LET PL=P(3)1 GO TO 4150
4021 RETURN
4Q3@ IF PRei THEN IF P(3)=P(1)
AND P(3)=P(2) THEN LET PL=P(3)1
GO TO 4199
4042 RETURN
AQS@ IF PR=i THEN IF P(4)=P(1)
AND P(4)=P(2) OR P(4)=P(1) AND P
(4) =P (3) OR P(4)=P (2) AND P(4)=P
(3) THEN LET PL=P(4)1 GO TO 419
ry
4060 IF P(4)=P(1) OR P(4)=P(2) O
ROP (4)=P(3) THEN LET PL=P(4)1 G
0 TO 4150
407@ RETURN
4@8G IF PRe3 THEN IF P(5)=P(1)
AND P(S)<>P(4) OR P(S)=P(2) AND
PCS) <>P (4) OR P(S)=P(3) AND P(S)
<>P(4) OR P(5)=P(4) AND P(5)<>PC
3) THEN LET PL=P(S) GO TO 4200
4090 IF PRe3 THEN IF P(S)=P(2)
OR P(S) =P (3) OR PiS)=P(4) THEN
LET PL=P(S)1 GO TO 4200
4100 IF FR®2 THEN IF P(5)=P(1)
AND P(5)=P(2) OR P(S)=P(1) AND P
(S)9P(3) OR P(S)=P (A> AND PCS)
=P (4) OR P(5)=P(2) AND P.
(5) =P (3) OR P(S)=P (2) AND P(S)
=P (4) OR P(S)=P(3) AND P(S) =P (4)
THEN LET PL=P(S): GO TO ai9a
411@ IF PR=t THEN IF P(5)=P(1)
AND P(5)=P(2) OR P(5)=P(i) AND
F(S)=P(3) OR P(S)=P(1) AND P(S)
=P(4) OR P(5)=P(2) AND P(S)=
P(3) OR P(S) =P (2) AND P(5)=P(
4) OR P(S)=P(3) AND P(S) =P¢
4) THEN LET PL=F(S): GO TO 4199
4126 IF P(5)=P(1) OR P(5)=P(2)
OR P(S)=P (3) OR P(S)=P(4) THE
N LET FL=P(S): GO 70 4150
414@ RETURN
A15@ LET PRePR+1
4169 IF PR=i THEN PRINT INK 25
AT 16,2)"ONE PAIR"; INK 1,AT 17,
2p MeN) BEEP 43,19
4170 IF PR=2 THEN PRINT INK 23
AT 16,Z)"TWO": BEEP .3,1@s
BEEF .3,10
4180 RETURN
4190 LET PR=PR+1
4200 LET PR=PR+1L
4219 IF PReS THEN GO TO 426%
4220 IF PR#3 THEN PRINT INK 25
AT 14,45" THREE “3AT 17,1; "OF
A KIND"5 INK 1pAT 16, 15 "atetatnatatene
#'r BEEP .2,1@: BEEP .2,10: BEEP
+2,19
4230 IF PR=3 THEN RETURN
4240 IF PR=4 THEN PRINT INK 2}
AT 16,15" FOUR "JAT 17,15 "OF
A KIND"5 INK 15AT 18, 15 "atetetemaretent
evn BEEP .2,10: BEEP .2,1@: BEEP
+2,191 BEEP 22,10
4250 RETURN
4260 IF PR=S THEN PRINT INK 2}
AT 16,0;"FULL HOUSE"; INK 1;AT 1
7,8) "PMANAMOAO, BEEP 12,101 BE
EP .2,1@: BEEP .2,1@: BEEP .2, 10
1 BEEP .2,1@: BEEP .2,10:
BEEP .2,10: BEEF .2,10: BEEP
12,18
4270 RETURN
4280 IF X#(1)=X8(2) THEN IF x8(
2)=X8(3) THEN IF X$(3)=x8(4) TH
EN IF X®(4)=X8(5) THEN LET PRS
6
4290 IF PRe& THEN PRINT INK 25
AT 16,15" FLUSH "y INK 1;AT 17
pLp MeN: FOR Nei TO 10: B
EEP 2,191 NEXT N
4291 GO SUB 198%: IF STR=1 THEN
LET PR=7
4292 IF PR=7 THEN PRINT INK 25
AT 16,1; "STRAIGHT "y INK 1;AT 17
slp Mater) FOR Nei TO 10: B
EEP 2,191 NEXT N
4300 RETURN
4320 IF D(3)=D(2) THEN LET DL
=D(2): GO TO 4499
4321 RETURN
4323 IF DR=i THEN IF D(4)=D(2)
AND D(4)=D(3) THEN LET DLeD(4)1
GO TO 4546
4324 IF _D(4)=D(2) OR D(4)=D(3) T
HEN LET DL=D(4)1 GO TO 4490
4325 RETURN
4326 IF DR®S THEN IF D(S)=D(2
Y AND D<S)=D(3) AND D(5)=D(4) TH
EN LET DL=D(5)1 GO TO 4540
4370 IF DR=t THEN IF D(5)=D
(2) AND D(S)=D(3) OR D(S)=D(2> A
ND D(5)=D(4) OR D(5)=D(3) AND DC
5)=D(4) THEN LET DL=D(5)1 GO TO
4549
4380 IF D(5)=D(2) OR D(S)=
D(3) OR D(S9=D(4) THEN LET
DL=D(5): GO TO 4498
4390 RETURN
4400 IF DR=3 THEN IF D(i)=D(2
) AND D(1)<>D(5) OR Dit) =D¢3) AN
D D¢i)<>D(S) OR Déii)=D(4) AND
D(1)<>D¢5) OR D(1)=D(5) AND DCI)
<2D(4) THEN LET DL=D(1)1 GO TO
4540
4410 IF DRs2 THEN IF D(1)=D(2)
OR D(4)=D(2) OR D(i)=D(3) THEN
LET DL=D(1)1.G0 TO 4530
4420 IF DR=i THEN IF D¢1)=D(2>
AND D(2)=D(3) OR D(i)=D(2) AND
D(2)=D(4) OR D(i)=D(2) AND
D(2)=D(S) OR D(i)sD(3) AND D
(3)=D(4) OR D(L)=D(3) AND DCS)
=D(5) OR D(1)=D(4) AND D(4)=
D(S) THEN LET DL=D(i)2 GO TO 45,
40
4430 IF DR=1 THEN IF D(1)=D(2)
OR D<i)=D(3) OR D(1)=D(4) OR Dit
)=D(S) THEN LET DL=D(1)1 GO TO
449
4440 IF D(1)=D(2) OR D(1)=D(3) 0
R_D(1)=D(4) OR Dit)=D(S) THEN L
ET DL|D(1)1 GO TO 4440
4450 RETURN
4460 LET DR=DR+i
4489 GO TO 4500
4490 LET DR=DR+1
4500 IF DR=1 THEN PRINT INK 25
AT 16,21;"ONE PAIR"; INK 1;AT 17
p2lp "NAA, BEEP 13,2
4519 IF DR=2 THEN PRINT INK 2)
AT 16,21;"TWO": BEEP .3,21 BEEP
“uda™ vei
BASIC full.
ereen window facility +
BASIC Classy Front End new fonts utility (
matical plot of the moon's surface (appeared in TDM J/A '85)
‘astronomic coordi
easy designer grarhi:
ica 2 allows multiple fonts and much so!
es to altitude/azimuth (in TDM N/D '85)
for redesign of U.D.G.s (in TDM J/A '88)
(in TDM N/D +66)
appeared in TDM M/A '87)
store
Complete Classy Froot End foots W.C. version (as in TDM J/A-K/D '87)
addition if you wich:
Mindovs & Portholes complete-—oan work with “ofe/mo” (New this issue)
BINGHAM’S BEST.
"of udg program
85 ppd
112,89 ppd
found in BINGHAM’ s BEST
Complete M.C. version of Classy Front End (use alone or with “wkp")
‘The comple’
‘JAZZOFIRE
Mail all orders to:
PAUL BINGHAM
P.O. BOX 2034
MESA, AZ 85214
(please US funds only)
RBI GRSSEREDIE
‘version of Windows & Portholes {
4520 RETURN
4530 LET DR=DR+1
4540 LET DR=DR+1
4550 LET DR=DR+1
4560 IF DR=5 THEN GO TO 4618
4570 IF DR=3 THEN PRINT INK 23
AT 16,215" THREE "AT 17,215 "0
FA KIND"y INK 1gAT 18,215 "ewww
weet"; BEEP 2,2: BEEP .2,2: BE
EP .2,2
4500 IF DRe3 THEN RETURN
4590 IF DR=4 THEN PRINT INK 25
AT 16,215" FOUR "sAT 17,215"0
FA KIND": INK 1pAT 18,21) "eee
wt") BEEP «2,21 BEEP .2,21 BEE
P .2,21 BEEP .2,2
4600 RETURN
4610 IF DR=S THEN PRINT INK 25
AT 16,21) "FULL HOUSE"sAT 17,215"
eee) FOR N= TO 81 BEEP
12,21 NEXT N
4620 RETURN
4630 IF Y$(1)=Y$(2) THEN IF Ys¢
2)=Y(3) THEN IF Y®(3)=Y$(4) TH
EN IF Y8(4)=Y®(5) THEN LET DR=
6
4640 IF DR=6 THEN PRINT INK 2}
AT 16,215" FLUSH “SAT 17,215"
PMNs BEEP .2,21 BEEP .2,
21 BEEP .2,2: BEEP .2,2: B
EEP .2,21 BEEP .2,21 BEEP .2,2
4659 GO SUB 10301 IF STR=1 THEN
LET DR=7
4655 IF DR*7 THEN PRINT INK 2
AT 16,213" STRAIGHT "SAT 17,215"
eeeets FOR N=1 TO 8: BEEP
+2,21 NEXT N
4669 RETURN
4670 BORDER 6: PAPER 61 CLS
4680 PRINT INK @;AT 9,10; "YOU'R
E BROKE";AT 11,1;"SEE YOUR BANKE
R AND COME BACK.”
4690 PAUSE
4708 STOP
471B-PRINT AT 19,23 "YOU NOW
"SAT 20,0; "HAVE-8 "3ST
472@ IF ST<1@ THEN PRINT AT 20,
a"
4730 IF ST<100 THEN PRINT AT 26
car
4740 IF ST<=@ THEN GO TO 467@
47S@ PRINT FLASH 13 PAPER 6; AT
16,135" BET "
4760 PRINT AT 17,153" *
477 PRINT AT 19,2; "YOU NOW "y
AT 20,0; "HAVE-® "3ST: IF ST<190
THEN PRINT AT 20,93" "
4788 INPUT W
4790 PRINT AT 16,133" .
4800 LET W=INT W
4810 IF W>1@ THEN PRINT AT 17,1
3;"SORRY,"ZAT 18,13; "LIMIT"ZAT 1
Fyligh “PAT 19,13;"% 19"
4820 IF W>1@ THEN PAUSE 15@
4830 IF W>18 THEN PRINT AT 17,1
3h" "yAT 18,135" "aT
19,415"
4849 IF W>1@ THEN GO TO 4740
4850 IF W<i THEN PRINT AT 16,11
3 PAPER Sy FLASH 13" You 5A
T 17,113" CHOSE "sAT 18,11
TOGO "sAT 19,115" QUT! B
EEP 1,-15: PAUSE 159: GO TO 5120
4869 LET ST=ST-W
4978 LET T=T+24W
4880 PRINT AT 17,13," "SAT
18,12," "AT 19,1143"
"SAT 17,135 "8 "50
4899 PRINT AT 20,7;ST
4900 IF ST<1@ THEN PRINT AT 20,
a"
4910 IF ST<196 THEN PRINT AT 28
an
4920 IF T<1@0 THEN PRINT AT 19,
11; "TOTAL=$" 37
4930 IF T>=10@ THEN PRINT AT 19
yils "TOTALS" 3T
4940 RETURN
4950 FOR I=16 TO 20
4960 PRINT AT 1,10; PAPER 45
AT 1,205 "0"
4970 NEXT I
4980 PRINT AT 15,10; PAPER 4;""
eae
4985 FOR N=i6 TO 19: PRINT AT N,
11, PAPER 75 INK 13" at
NEXT N
4990 PRINT AT 20,10; PAPER 43"
3 PAPER @; INK 95" THE POT "; PA
PER 4;"1"
4995 RETURN
5@10 IF PRDR THEN GO TO S@6o
5@15 IF DR>PR THEN GO TO S110
5@20 IF PR=@ AND DR=O THEN GO T
O S130
5@30_IF PR=DR AND PL>DL THEN GO
TO 5048
5@49 IF PR=DR AND DL>PL THEN GO
TO 5116
S850 GO TO 5130
5960 PAUSE 89
5Q70 PRINT FLASH 13 INK 1,AT 16
sis" WINNER “3 FLASH @} INK 035A
T 17413" “ZAT 17,3;"8 "p
Tr FOR N=1 TO @: BEEP .1,191 NEX
™N
5@80 LET ST=ST+T
5090 PRINT AT 20,7;ST
5190 GO TO 5130
Si1@ PAUSE ao
5120 PRYNT FLASH 15 INK 1;AT 16
3213" WINNER "y FLASH 3 INK @|
AT 17,215" “PAT 17, 23,"8
"sTs FOR N=1 TO @1 BEEP .1,-19
NEXT N
5130 PRINT AT 16,11; PAPER 65 FL
ASH 1)" PLAY = "jAT 17,115" ANO
THER "SAT 18,11 HAND? "SAT 1
Fits" (Y/N)
5140 PAUSE
SiSO IF INKEY$="N" THEN GO TO 5
140
S155 GO TO 11
5140 BORDER 3: PAPER 31 INK 71 C
Ls
5170 PRINT AT 1@,1,"HOPE YOU HAD
FUN---COME AGAIN.
5180 PAUSE o
5190 STOP
6980 FOR C=1 TO 2
6010 PRINT AT B,A;"FJUIG"
6220 FOR N=B+1 TO B+S,
6038 PRINT AT N,AS"K KM
6048 NEXT N
6050 PRINT AT B+4,A; "HJJJI"
4040 NEXT C
6065 BEEF 01,10
6070 IF H=i THEN GO 70 6130
4080 GO SUB 7008
4990 PRINT AT B+L,A+1s INK X;A8(
F,4) AT B+3, A414 INK ;A8(F,2 TO
S)pAT B+S,A+3; INK XsAS(F, 4)
6120 LET V=9: GO SUB 7049
6110 LET AS(F,L)="1"
6120 RETURN
6130 FOR N=B+1 TO B+S
6148 PRINT AT N,As"K"; INK 15"EE
E"y INK 95"K"
6150 NEXT Ni RETURN
6620 LET F=INT (RND¥S2) +1
6619 IF AS(F,4)<>"B" THEN GO TO
1620
6628 LET x=
6630 IF AS(F,1)="2" OR AS(F,1)=”
4" THEN LET X=2
6640 RETURN
700% LET F=INT (RNDXS2) +1
7010 IF AS(F,1)<>"@" THEN GO TO
7080
7020 LET X=@1 IF AS(F,4)=
AS(F,4)="D" THEN LET X=2
7020 RETURN
7040 IF AS(F,2 TO 3)=" A" THEN
LET Veta: RETURN
8
oR
7050
LET vi
7060
LET v:
7070
LET vi
7088
7098
86GB
D¢5)
8001
8002
8003
8004
8085
8006
8007
e988
8009
8018
8011
e012
8015
8014
8015
8016
8017 LET AS(17)="o
8018 LET AS(18)="g
8019 LET AS(I9) ="
920 LET AB(29)="g
8021 LET AS(21)="o
8022 LET AS(22)="o
8023 LET AS(23) ="919i
8924 LET AS(24) ="
8025 LET AS(25)="9
8026 LET AS(26)="o
8027 LET AS(27)="9 A
IF AS(F,2 TO 3)=" J" THEN
silt RETURN
IF AS(F,2 TO 3)=" Q" THEN
#12 RETURN
IF AS(F,2 TO S)=" K" THEN
#131 RETURN
LET VevVAL AS(F,2 TO 3)
RETURN
DIM AS(52,4)1 DIM P(S): DIM
LET as(i)="9 Aa"
LET za"
LET sa"
LET 4a"
LET sa"
LET 6A"
LET 7A"
LET Ba"
LET oA"
LET D190"
LET @ Ja"
LET AS(12)="@ Qa"
LET AS(13)="@ KA"
LET AS(14)="9 AB"
LET AS(15)="@ 2B"
LET AS(16)="@ 3B"
9028 LET AS(28)="@ 20"
8027 LET AS(29)="9 3
8030 LET AB(3O) ="
8031 LET AS(31)="9
Q032 LET AS(32)="9
8033 LET AS(33)
8034 LET AS(34) =o
8035 LET AB(35)="o
G36 LET AS(36)="B190'
8037 LET AS(37)="@ JC'
Q038 LET AS(38)=
8039 LET AS(39)
8049 LET AS(40)=
8041 LET AS(41)="9
8042 LET AS(42)="@ 3D!
8943
8044
8645
8046
80647
8048
e049
avs
ae51
LET AS(43)—"9 4D"
LET AS(44)="9 SD"
LET as(4s)
LET AS(46)="6 7D"
LET A8(47)="@ BD"
LET AS(4e)="@ 9D"
LET AS (49) ="g19D"
LET AS(S@)="@ JD"
LET AS(51)="@ QD"
@052 LET AS(52)="@ KD"
@053 RETURN
900® RESTORE : FOR asUSR "a" TO
usr"
9W19 READ us
ku a7
ra POKE a,user
9028 NEXT a: GO TO 10
9030
60,24
9040
28
9050
16,56
260
6, 0,
9070
Si,S1
9080
9890
190
F119
9120
9130
4
9990
9991
9992
ust
9995
9996
DATA 24, 40,126, 255,255, 126,
DATA 28, 28,8, 107,127, 197,8,
DATA 16,56,124,254,254, 254,
DATA 192,255, 255, 255, 255, 12
24
DATA 24, 204,51, 51,204, 204,
DATA 6, 0,0,7,15,12,24,24
DATA ®, 6,9, 192,240, 48, 24, 26
DATA 24,24,12,15,7,2,8,8
DATA 24,24, 48,249, 192,0,0,8
DATA 8, 9,0, 255,255,9, 8,8
DATA 24,24,24,24, 24,24, 24,2
REMabcdefghijk
REMABCDEFGHIIK
BORDER 7: PAPER 71 INK @: C
STOP
SAVE "STUD POKER" LINE 9800
GO TO 16
WARREN'S 2068 HASIO'S
Horizontal Bar Chart
Warren
HORIZONTAL BAR CHART is a routine in BASIC for
the 152068 with an attached 152040 printer. The
purpose of the routine is two-fold. One, it is a
relatively short program that provides a bar chart to
illustrate the comparative status of a number of items
(up to 20) in an inventory. Two, it demonstrates one
way in which the 2040 printer can print out and
“couple” automatically several screens full of data.
and print it as a single illustration.
This program will print out one screen full, or
two screens full, as the number of items requires.
For example, we input data on 15 assumed and
related items, in this case various fruits. We also
included make-believe quatities and a title, in
response to LINE 55 of the program. The routine is
universal. You may enter any related items and
respective quantities. The item name is limited to 12
characters, in LINE 20. We also elected to call this
FIGURE 1, but again, this may be changed to suit your
application. Usually bar charts are used for a group
of related items of 5 or more. Less than this and a
pie chart may be a better choice.
In order to understand the arithmetic of the PLOT
and PRINT AT lines, such as 240, 250, 530 and 640, you
should refer to a screen chart for the computer. There
is one on page 152 of the User Manual.
REM ## HORIZONTAL BAR CHART
a
2 REM #% “D-30", 3-17-38, UF
S REM ## ENTER DATA
3 :
10
: POKE 23653,3
ow mary
20? “3T
4S IF I>20 THEN GO TO 12
28 DIM AS(I,12): DIM oft)
38 FOR n=1 TO I
40 INPUT “Enter item No, “3 (nd
j", afd quantity “;Asind O(n)
45 IF Qin) omax THEN LET max=0(
items, 5 to
nD
SQ NEXT_n
55 INPUT “Enter title. Maximu
m_of 32 Characters. "j;BS
200 REM ss PLOT DATA
218 LET U=160
220 FOR m=1 TO I
299 FOR n=@ TO 2
240 PLOT O,U+3en: DRAW 25340 (Mm)
vmax ,Q: NEXT n
250 PRINT AT B1-V/8,4j;Agim);" =
eam); units
260 LET vsy-i
270 IF _m=18 AND I=10 OR m>10 AN
DB 1312 THEN GO To Sao
28 NEXT m
298 PRINT AT 19,16-LEN B$/2; BS;
AT 20,12;"FIGURE 1"
300 PLOT 0,0: DRAU 8,175: RAL
BBS ,9: BEAU @,-17S: DRAW -255,0
Fracre
RPPLES = ipo Units.
AUVOCRDOS = BB units.
BANANAS = 2 units.
BLUE BERRIES = 50 units:
CHERRIES TE Units.
[SRAPes = 15 units.
GAAPE FRUIT = 25 units.
TEnONS [Se units.
(Tines = ii units.
ORANGES = 115 units.
BEACHES S52 units.
[PERRS = 35 units.
PINEAPPLES = 27 units
PLUMS = 12 units.
TANGERINES = 7 units.
INVENTORY OF FRUIT
FIGURE 1
S08 PLOT 0,2:
255,08: DRAW O,-17
$10 IF I> =12 THE!
528 PRINT AT 19,3
AT 20,12; “FIGURE i
538 PLOT 0,175:
AU 255,8: DRAU O,2
P
600
ara
REM #2 PLOT CONTINUATION
af CATA
685 L
628 FOR m=12 Ta ©
623 FOR
630 PLOT @,U+S4n: DRAW 25340 im)
“ax ,O: NEXT 1
S4@ PRINT AT 24-U/8,1;AgimM;" =
“7Otm);" units.”
650 LET. -16
670 NEXT m: RETURN
Sinclair 2068
A BROKEN 2068? FIX IT YOURSELF!
method of testing for, and repairing a Timex Sinclair
2068 with bad RAM chips. Though it is a simple project
that most people with basic soldering skills are
capable of completing, and the information presented
here is believed to be correct, the author and pub—
lisher take no responsibility for any damage done to
the computer (or hobbyist) as a result of, or while
using this information.
not working is burnt-out RAM chips, The chip(s) are
usually destroyed when turning on the computer with a
printer or disk interface attached. Though I have no
way of proving it, the most likely cause is a high
voltage “glitch” produced by the switching regulator
when it is "powered-up" under a heavy load. Note that
one or all of the chips can burn out, and in any
combination.
There are three symptoms that may indicate bad
RAM chips. The first is a blank screen when the
computer is turned on. This suggests either a “brain
RAM CHIP LOCATIONS IN TIMEX 2068, CHIPS ARE HARKED 4416-15
ST-STtP de
ND
u7
a
>
7
:
4
a
(9 serra no. __]
ae EDGE OF PRINTED CIRCUIT BOARD
TIMEX _TS-2000
3235-85000 1-23R,
CARTRIDGE CONNECTOR ——~
FIGURE ONE
dead" 2068 (the SCLD...or "square chip"
and is VERY difficult to replace,
or that most of the
is destroyed.
IF you can get one),
RAM chips have burnt out. The
second symptom is a display that consists of a white
border around a screen of "garbage". This indicates
that at least one of the RAM chips in the first 16K
bank is bad. The last and most obvious symptom is the
free memory after power up is less than 38652 bytes
(using the PRINT FREE command). If a Spectrum ROM is
installed in the computer, the original Timex ROM will
have to be replaced to use the FREE command.
If your machine exhibits any of these symptoms,
there is a chance it can be easily repaired. First,
the computer's PC board must be completely removed
from it's case. Save all the screws and be careful to
avoid damaging the keyboard ribbon cable. Place the PC
board on a non-conductive work surface and plug it in.
Leave it turned on for a few minutes and then check
each of the RAM chips for overheating (see Figure One
for the chip locations). If any of the chips are hot
to the touch, they are bad and need replacing. Mark
them for removal. If none of the chips are hot and the
computer still displays a black screen, the problem is
probably not with the RAM chips. Consider sending the
machine out for repair (to Dan Elliott of Promise Land
Electronics--see May/June '88 issue of TDM for address
listing). If the computer displays a border around a
screen of garbage, chips U6 and/or U7 may have gone
bad. If a normal sign on the screen is displayed, but
only 22268 bytes are "free", chips U16 and/or U17 may
have gone bad. If 5884 bytes are free, chips U12
and/or U13 and possibly U16 and/or U17 may have gone
bad.
The chips that are hot to the touch should now be
removed. Don't bother trying to remove them in one
piece. Just cut or clip pins near the body of the
chip, and remove the remaining pins from the PC board
with a hot soldering iron and tweezers. If the chips
are suspected to be bad but are not getting hot, a
more difficult problem exists. The chips can be
clipped off the board and discarded, or removed in one
piece. If the chip is clipped off, you will never know
if it was good or bad, and it will have to be re-
placed. If the chip is removed in one piece (a very
difficult task), the chip can be saved for testing and
possible re-use...but only at the risk of possibly
damaging the PC board. Make your own decision.
Once the chips have been removed, the computer
should be tested again. Connect it to a monitor and
turn it on. If any of the remaining RAM chips are now
getting hot, they should also be removed. If the
display was formerly black, and now displays the
10
normal copyright
available, the chips can be
should work fine. If a border is displayed eround a
screen of garbage, and chips U6 and U7 are still on
the board, one or both of them may also be bad. Remove
them for replacement or testing.
New RAM chips for the computer will have to be
purchased. The 2068 uses 4416-15's, which aro 16K*4
RAM chips. The 15 in the chip number designates speed.
In this case 150 ns (nano seconds). Purchase either
120 or 150 ns chips, as the slower 200 ns chips will
not work. Radio Shack does not sel! them, so they must
be mail-ordered (suppliers listed at the end of
the article). Consider purchasing extra RAM chips, so
that if one of the RAM chips left on the board is bad,
you won't have to re-order. Don't even think about
soldering the chips in. Purchase IC sockets along with
the chips. Sockets make it easy to remove a chip for
testing, and at twenty cents each, are a lot cheaper
than cutting a $4.00 RAM chip off the board.
The sockets should now be soldered in place where
the RAM chips once were. If the holes on the PC board
are filled with solder, they will first have to be
cleared. The best method I have found is to hold the
PC board vertically in a vice, melt the solder from
one side of the board with a soldering iron and use a
solder pump to suck the molten solder out from the
other side. Remove any solder splashes or excess flux
from the PC board and solder the sockets into place
using rosin core solder. .
Insert the new RAM chips inté the sockets with
the notch end of the chip pointing to the back of the
PC board. Test the computr out of the case once again
as described in paragraphs two and three. If every-
thing checks out fine, the computer can be re~
installed in the case and used as normal. If the
computer still does not work or has reduced RAM
available, there are two possible reasons. Either
there is yet another bad RAM chip (new or old), or
another chip in the computer is damaged, but still
operates. Re-test the computer for bad RAM chips, and
if none can be found, consider having the computer
professionally repaired.
message, but with reduced RAM
replaced and computer
SUPPLIERS:
JDR_ Microdevices.
95030,
order.
110 Knowles Drive. Los Gatos. CA
(800) 538-5000. Takes VISA & M-CARD, $10 min.
JAMECO Electronics,
94002, (415)
order.
1355 Shoreway Road, Belmont, CA
592-8097. Takes VISA & M-CARD. $20 min.
PUPOOTH HU AOUHEAHE UOTE LOO EELEUOL VEE ODROUEA SOUSA EH DNOD ENE OAM OUTED EGEUEUODHUORTEDUE OU UAVUUCSOUC PEON UOTE HOOUEeODCODEELOOREEOGG OEE SOOOUOAOLQOOGELU MU OQEAaHOOBODOGOL OFOALHUERETEEEVEOEOUEAUD
curry P.O. BOX 5607
computer [eel
*#**e%* SUMMER CLEARANCE SALE #**##
SOFTWARE for the T/S 100 All $2 ea.
Mixed Game Bag I\Presidents\ Stk Mkt Calc\ Red Alert\
Night Gunner\ Hangman\ Fin Mor & Rec Keep\ Alien Invasion\
Meteorites\ Chess\ Gambler\ Cube Game\ Mixed Game II\
Organizer\ Home Asset\ Home Improve.\ VuCalc\ Geometry\
Pioneer Trail\ Damper-Glooper\ Croaka Crawler Plus many
more —- Write for a list.
T/S 1000 Computer (2K) with 3 Programs — $22.95
SOFTWARE for the T/S 2068:
Budgeter...%5 Stk Mkt Calc...$3.50
Fighter Pilot...$12.95
SOFTWARE for the Spectrum:
Storm Bringer...$5 I, Ball...%6 Biggles...$8
10th Frame...$10 Mag Max...%10 Snowman...$5
Speed King 2...$5 Skyranger...$& Plus
Onlys’, write for a list.
SOFTWARE for the QL:
Super Disk (TKII req.)...$19.95 Cribbage...%14.95
SuperBoot. $14.95 (disk) QRAM...$39.95
Graphic TI $18.95 Wanderer (RGB only)...#18.95
Archive 2.38...%14.95 Grab Bag TI...814.95
Presidents...$9.95 Nucleon...$19.95
Super Checking...%14.95 Thompson Case (12)...%1.99
Assembler...$34.95
MAGAZINES:
QL World: Current Issues - $4.25 \ Back Issues $3
(Jan/Feb/Mar/Ap/May/June/Oct ‘87)
Sinclair User: Current Issues - $4.50 \ Back Issues $2
{call for list)
We also have: Commodore Use Commodore International;
Amiga User; Atari User; Atari ST User; Computer & Video
Games; PC Amstrad; Amstrad User; Amstrad PCW...Call for
Pricing.
S/H Charges: Under $15 = $1 \ Under $30 = $2 \ Under $50 =
#3 \ Under $100 = $4 \ Under $200 = $6 \ Over $200 = sa
Sale Prices Good for 30 Days from Publication.
Mass-Storage
CASSETTE TAPE STORAGE
2068 PROGRAM INDEX
by V. Phillip Hosey
This simple program is easily adaptable to productive activities while passing the few minutes
virtually any computer. It not only provides a delay required for LOADing lengthy data. One last
modicum of security, but files all your stored note: LINE 0 was obtained from Randall Larson's "NO
programs by digital location on tape, eliminating a DELETE PROGRAM" listed in the NOV/DEC ‘87 issue of
lengthy title-by-title search. I always incorporate TDM ("In The Mailbag"). Originally intended for the
an attention-getting BEEP at the beginning of each Spectrum, it functions perfectly without modification
program SAVEd LINE 1 so that I may divert to other on the T32068.
il
O>REM 1985:V. Phillip Hosey
1 PRINT "STOP TAPE:CODE?": INPUT AS: IF a} T use my computer's serial
$<>"(any CODE you want)" THEN NEW number as an access code.
10 BORDER PAPER 0: FOR 1=0 TO 21: CLS : sou
PRINT INK 7;AT 1,0;": V. Phillip Hosey/T GO LE ENE EY 925 07 SHEN, “GO-40.95
$-2068:1985": BEEP .01,-1: NEXT i 81 IF SHEN. DBT.
20 INK 2: CIRCLE 60,92,81 ae aoe ee
23 INK 4: CIRCLE 207,55, 43 ey er insert
25 INK 1: CIRCLE 198,136, 32 4 IF SHEN’ BEE digital” 2 aft
30 PRINT INK 6;AT 2,10; "1";AT 3,7; "Progra 85 IP THEM (UBT e Gabeung yee ecco
M"7AT 4,7; "-INDEX-";AT 14,23;"16k=90";AT 15 Sore belstslla aed iignane sien sanpinat
123; "second" ;AT 16,22;"loadtime";AT 4,22; "1 7 GTE eg nen Ee ae
NKEY$"; FLASH 1;AT 5,24; "#2": FLASH 0 08 IP INKEY§~"6" THEN LET
40 FOR n=0 70 9: READ AS: PRINT INK 3;AT 9 oEE INKS 5 3°91 SHER UBT
n+6,2;n;" "; INK 7;A$s NEXT n Bet PRINT Pet S:AT 3,22 Wa oarepa 4,22;"
50 FOR y=0 TO 31: PRINT INK 7;AT 21,y;"." Se ig ia eae
Heese eee mehey AT 15,23; "Forward" ;AT 16,22;" Tape To"; FLA
60 IF INKEYS="" THEN NEXT y: BEEP .01,9: SH 1;AT 17,25;t;AT 21,7;"* PAUSE TO LOAD
Go T0 50 ";INKEY$; FLASH 0: INK 7: LOAD INKEY$
95 CLS : LIST 99: BEEP 1,30: PRINT ; FLASH
1;"REWIND TAPE THEN SAVE ": FLASH 0
99 DATA “Index Editor", "BattleStarxEMIT",” ) you can list program names
MSCRIPT Master","Printer Drive","Accounts:1 in order prior to storage.
987",""s-2068 CDP", "File Matrix", "SmartMode (Ignore these samples)
m","WordWright","Dive Guide"
2068 TURBOLOADER
by Floyd Chrysler
(adapted from an original Spectrum program,
with permission, by Esben Krag Hansen)
Do you have lots of programs cn tape? Do you go crazy
waiting for them to load? If you ansvered yes then you may be
interested in this program to double the speed of your tepe
loads.
INPUT- This deals with the message start tape on SAVE’s
I was in the same position whan I received the May 1986 INPUT @ prints the Turboloader message and the stert
issue of "Your Sinclai: Even though I have the AERCO FO-68 I tape message and waits for a keypress.
Still have lots of programs on tape I really didn’t went to move INPUT 1 print the Turboloader massage only and waits
to disk and I still make backup copies of important progams for for a key press.
jong tern stcrage. Using disk made my tape deck seem sc slow. INPUT 0 prints nothing and goes right into the save
without wetting for a key press.
In the magazine uss a program by Esben Hansen for the
Spectrum that allowed you to save and load programs at variable PRINT~ This deals with LOAD/VERIFY commands
baud cates From i500 Cnormal rate? to 3500 (more then double), Print 2 prints the turbolcader message and program
I wanted to do this on a 2068 so I vawed to convert the program names as they are Found.
to work on my machine. Print 0 nothing is printed.
This was not as easy as I had thought. While a lot of the PRINT 2 and INPUT 2 ere the initial default values.
program was compatable with the 2088, by just changing the ROM
calls, the calls to the tape handling routines were «# problem. There is a lot of code to enter for Turboloader, I _heve
On the 2068 the taps routines are ell in EXROM, it was eithac included a Hex loader progran to make it a little easier. Enter
Dankswitching ors reurite to do the tape handling routines the loader program and save it. The code is listed in thres
within the program. 1 chose the second and by some fiddling columns. The First is the address for that code line, Next is
managed to get the program to work with most of the Functions in the code in blocks ef @ nex bytes. Last is,a check digit.
ths original and only use a little over 200 bytes more.
Uhen you run the hex loader it will ask you for a start
The program supports all the tape conmands - Save, Load, address. The First time you should enter 63380, It will then
Verify, and Merge. Turbcloader is invoked by a RANDOMIZE USR ask for the code. Enter all 16 characters (8 hex bytes) end
53600. This is followed by the Turboloader commands - LIST, press enter. You will then be asked for the check number, Enter
PRINT, INPUT, or RUN, And Finally your taps command - SAVE, it and if all is ok the program will display the next address ~
Load, ‘ets. (which should match the next address in the code list), if there
is en error the progcam will beep and redisplay the same address
To save a screen at double speed: for you to reenter the line in error.
RANDOMIZE USR 63500; RUN 3100: SAVE “pic” SCREENS At any tims you may enter STOP to the enter code massage and
you will be prompted to seve the code entered to thet point,
The keywords List, Print, Input, end Run will still werk as You can then restart at a later time by reloading the code and
normal except when they follow a RANDOMIZE USR 63600. When used loader program and entering the next address From where you left
es Turboloader commands they have the following meaning: OFF at the prompt, When you have entered all the code the
program will prompt you to save the code, Once you have all
LIST — This command reads a header from tape and lists it on the code saved you can start speeding! Enter CLEAR 63373: LOAD
the screen. It displays progran length, data length "TURBO" CODE 63380. Remember the entry point to the program for
for code, start line, etc. all user calls is 63600.
ex: RANDOMIZE USR 63800: RUN 3100: SAVE “test” CODE
63600,600: LIST Don't be intimidated by all the code. I'm sure you will
find it worth the time to enter, If you have not yst spent the
RUN - This changes the baud rate. It must be followed by a family fortune ona disk drive you will Find this program
number ranging From 1500 to 3500, in steps of 200 invaluable.
(4500,1700,1800, etc.). A good tape recorder should
be able to handle at least 3100. 12
(ready
addr
63380
63398
633396
63404
63412
63420
53428
63435
6344+
63452
63460
63468
83476
63484
63492
63500
53508
63516
63524
63532
63540
6asi8
63556
53564
53572
63580
53588
635865
63604
63612
63620
63628
63636
63644
83652
63650
63688
63576
63684
53692
63700
63708
63716
63724
63732
63740
63748
63756
63764
63772
53760
63788
63786
63804
53812
63820
Hex Loader
30 DEF FN hCaS)=CODE aS-48-(7
AND as>"9">
40 POKE 23658,8
SO INPUT "Start Address:
star
t
60 IF start=63380 THEN GO TO
30
70 INPUT "Have you re-loaded c
ode?” ; zs
BO IF 28<> "Y" THEN PRINT "Lo
ad code and re-start”: STOP
SO LET adrestart
100 FOR testart TO 65444 STEP B
110 LET sum=0
120 PRINT adr;" ";
130 INPUT “enter code ";cS
140 IF cS="STOP” THEN GO TO 38
°
150 IF LEN cS<>16 THEN BEEP .2
S,.25: GO TO 130
160 FOR i-1 TO 8
170 LET aS=c$(2)
Turboloader Code
for Hex Loader program)
63828
code check Beer
CF1A7EE6COZ0151A B64 53852
13BE2320021ABE1B 521 63850
BB3008ESEBCD2017 823 63868
E116ECCDFOF718F2 1427 63876
7EYFFEBOCBES214B 1124 63884
SC7EFEBO2B25B928 soz 63892
OBCSCDZ017C1EB18 517 63800
FOEGEOFEAQ2012D1 1367 53908
DSES23131ABE2005 750. 63916
1730F7E11803E118 819 B3924
EO3EFFD1EB3C37CD 1305 63832
FOF7i8C420100822 797 53940
SFSCEBCD2017CDSO S67 63948
L7EB2ASFSCOBOBDS 716 63956
CD201722SFSC2AS3 606 63964
SCE3CSOB38072BCD 635 63972
BE1@231803C0BB12 677 63580
-@3C1D1EDS3S3SCED 1169 63988
SBSFSCCSDSEBEDEO 1336 63335
EICIDSCDSO1701C3 1343 BY004
BDZOFDA7OYCE3E7F S06) eyo1e
DBFE1FDOASES2028 1183 64020
F37S2FYFE6O7F608 S81 sxoea
D3FE37CSFS3AN8SC 1186 64035
EG3E0FOFOFD3FE3E 859 BYou4
7FDBFE1FFB3802CF 1147 BY40S2
OCFicsooecoc0000 ¥S4 64050
OOOCQOOODFFECDE8 530 64058
47FESACEO2CFOBFD 896 54078
BYOD2ASDSCESE72@1 785 ByOs4
7OFGESFEFS28SDFS 1464 6y0s2
ESCDCDFEE1F1FEEE 1684S 64100
@@SFFEF7CA27FAFE 1361 64108
FOCA7GFAOGOOFEFB 1320 64116
@8G6104FEEF28SCoO4Y 770 BY1e4
FED6265704FEDS28 1106 64132
S@22SDSCFD3SSODE1 84S 64140
COCHFBEDYB7ESCC9 1372 By14e8
BA3BFFFEO2COC3AS 1184 64156
OBSASCFFFEO2COCD 1034 Bu164
ASOB1160FEAFCD3F 987 54172
O7EDYB37FFCD8817 333 64180
3EODD7CSCDOOFSFE 1199 suisse
O3D276FA323BFF18 969 64195
DSCUOOFSFEO330F1 1216 sy204
323CFFCSE7CDES18 1258 By212
C31E1F763239FFE7 969 s4220
CDEFIBCDBS28283D 954 By228
0111003439FFA728 595 54235
O2OEZ2F7DSDDE108 952 suey
OBSE20121310FCO0 631 64e52
3601FFCDAF2F21F6 1016 54260
FFOBOS0330103A33 457 64258
FFA72003C3701478 S04
B1280A010AOCO0DDES 688
E1@3EBEDBODFFEEY 1613
20473A3SFFFEO3CA
EDIBE7CD702CCBFS
300C2100003A39FF
3D2616C3911BC2ED
1 BCD89282818237E
DD770B237EDD770C
230D710E3E01CB71
28013CDD7700EBE7
FE2S20DAE7EBCIGD
FBFEAAZO1C3A39FF
FEO3CAED1BE7DD36
OBOODD350C1B2100
40DD7S50DD0740E18
4AFEAF2O4DSASSFF
FEO3CAED1BE7CDE7
21200C3A39FFA7CA
EDLBCDS11C180FCD
ES1BOFFE@CeB0c3A
SSFFA7CAEDIBCDS1
1C1804E7CDES1BCD
231FDD710BD0700C
cne31Fnn7 1000070
OESO6S0D360003C3
GDFEFECA2807D036
OESOC34DFB3A39F F
A7C2ED1BE7CDES1B
C344FBE7CDES1BCD
231FCSCDES300164
OOCDES30EFOS38CD
1ELFFEOF3834F E24
‘3O30DEOFCBY7202A
CB27CB27214DFFO6
OO4FOSEB213DFFO6
OBCS1A1S4E234523
O2C110F53A1BFES2
4SFECIED4337FFC3
CDFECFOSE7FEODeS
OGFESA@a02CFOB11
1100DD2126F FAF37
COCEFD30Fe3ae6rF
FEO430EBCOC4FB3E
020D301211F6FECD
3F071127FFO60A1A
FE203001AFD71310
FG3EODD73A25FFA7
2822F E0328SD3E0S
1150FECD3FO73A34
FFFSE61FCSYOD7F1
€B7726033E24D73E.
ODD7164EED4B33FF
78E6C02010CS3E02
1160FECD3FO7C1CD
88173E0DD73E0611
GOFECD3FO7ED4835
FFCSCD3AFB3E0711
GOFECD3FO7C12A31
13
180
s)
190
200
210
220
230
240
250
260
40
270
280
280
300
310
320
330
B40
350
350
370
380
your
3390
400
s33
932
1308
463
921
634
as4
762
307
1315
1105
1229
358
730
gg2
1380
816
B22
887
1232
953
758
351
688
1138
1035
1317
1411
eso
381
728
673
B55
678
468
B4s
1329
1207
585
784
1302
1252
gags
423
760
1054
531
752
1479
740
sue
651
1040
534
sso
1052
gos
POKE adr,FN h(cS)*16+FN hCa
PRINT c8(1);a3;
LET cS=cSC3 TO )
LET sum=sum+(PEEK adr)
LET adrmadr+i
NEXT 4
INPUT "Check Number=";chack
PRINT " ";sum
IF sumé>check THEN GO TO 3
NEXT t
PRINT "END OF CODE”
SAVE "“TURBO”CODE 63380,2066
PRINT “VERIFY”
VERIFY "TURBO”CODE 63380
PRINT “FINISHED”
STOP
LET adreadr-8
BEEP .5,1
PRINT "ERROR - RE-ENTER”
60 TO 110
INPUT "Do You vant to Save
work? CY or N2";zs
IF zS="¥" THEN GO TO 280
STOP
SAVE "hexload" LINE 10
64276
By2e4
Biese
64300
64308
64316
54324
64332
64340
64348
64356
54364
64372
64380
64388
64355
BY4OH
euuie
54420
su4e28
54436,
Seay
ee4se
54460
eu468
BY476
eu4e4
BY4s2
54500
54SOB
64515
54524
64532
54540
e4sys
54556
euse4
54S72
s45e0
54588
5Yss5
BY6O4
64612
54620
B4628
64635
eee
64652
S466
64658
64675
BYBB4
e4ss2
64700
64708
64716
By7e4
64732
64740
FFA7EDY2@444DC03q
FB180F3E031160FE
CD3FO7EDYB33FFCD
3AFB3E041160FECD
3FO7ED4B31F FCDES
30CDA1313E00D7C9
¢b231FDD71000070
OEDD360000z2A58SC
EDSBS3SC37EDS2DD
7SOBDD7YOC2A4BSC
EDS2DD7S0F 007410
EB3A39FFA7CAODFD
E5011100000scpcD
FBODES111100AF37
COCBFDDDE130EF 3A
3BFFA7280CCDCYFB
SEFECD3012FD3652
030E80D07ECODDBE
EF20020EF5FEO430
CD473A38FFa77e20
0811FEFECSCD3FO7
C1DDESD121FOFF19
O60A7E3C20037880
4F131ABE2320010C
SA3BFFA728021AD7
10EFCB7920S983A3B
FFA728063E0D07CD
CDF8E1DD7E00FE03
2BOC3A3SFF3NCA41
FCFEO@CAEEFCESDD
GEFADDS6F SDDSEOR
DDSGOC7CBS2B0EED
5238272808DD7E00
FEO3C2Q4F7E17CB5
2006DD6EODDDSEOE
ESDDE13A39FFFEO2
372001A73EFFCDCB
FDD8C3S'#F 7DDSEOB
DDS6OCES7CBS2006
131313EB180CDD6E
FADDSSF BEB37EDS2
38091105001 9444D
CDBB1FE1DD7E00A7
283D7CBS26132B468
2BYE2BO303030D22
SFSCCD5017D02ASF
SC2ASSSC2BDDYEOB
DDY6OCCSO3030300
7EFDFSCOBB1223F1
77012373237223ES
DDE1373EFF188FEB
@ASSSCEBDDZESFSC
DDYEOBDDYSOccScD
4D17C1ESCSCDBB12
DD2ASFSC23DDYEOF
DD461009224B5CDD
660E7CESCOZ00ADD
GEOD2e42SCFD360AR
OOD1DDE1373EFFC3
1133
722
1098
S47
1124
g54
951
512
1038
685
1025
1240
887
362
1452
1182
976
s03
833
975
397
1405
486
394
822
880
363
1282
750
1650
1260
315
$72
1376
719
1301
980
2385
asi
659
1433
BS?
1162
578
428
653
568
730
1310
esi
1220
708
1015
1129
733
738
S25
632
1222
adér code chock g1972 oB1STssEornarE2: 947 Beeeo dcapuaippavisess 713
64980 SOFBESDBFEIFES20 1323 2
iio aercoossonmosene ses Sisee Foowsrorcccseere ze Ge oaeeey ee
64764 ESDDE1373EFFCD3A 1310 BS Or RELISOIORECE, “B64. BSaue YCHSHEY7SHYBBAYC 712
64772 FCELEDSBS3SCC395 1325 §S004 7CBS20FSCDS7FE3O 1180 SS252 YSHEY7SUYB2OUFYG SSS
64780 F7ESSASCFFA7@824 1082 &5012 EBOBSCCDS7FES0E# 1219 65260 20S641524S41424C SES
SY7E8 SDZOOASEFDEDaOI2 Ges 55020 3ECBBS30EQ2420F1 1025 65268 4SSSPAONSOSS4F4? BES
64788 CDDSi11817¢DAS0g Bee 65028 O6CSCUSBFESOD578 1138 65275 S2414DBACDYESSYD 663
54804 CDOCDF83E011160FE 1088 65036 FEDISOFYCOSBFEDO 1516 see Yeussez041se25241 SHS
64812 CD3FO7CDDS11CDAS 1088 Be0tlh TSE OG2F ©S0006E0.-. 66% 65292 SSBACDYS4¥BY1S241 639
64820 OBCDCDFEDDES1111 1150 Sect. See ee ne. 65300 YaS4NSSez0415es2 563
6 0A
S4828 OOAFCDSZFDODEIO5 1167 Broce ir eter es 65308 YISSEAODYESSSY4S 661
84895 3e7610FDDDSEORON sey BEOTES Oaanconboeteonoe tee 65316 S3BA000000000000 263
Suess SGocsErrooeieiso 374 fons Peeeneereroe Goer 65324 0000000000000000 0
O1FCB7F28 1033 65332 OO000ODCOSO00002 +227
5YB60 O3z19s0C0R81aDD2B 491 Bolas Gene ones qoeg 85340 O288FDA7FDADFOBB 1424
64868 FI
Suse Eeorosadeneorsos 740° 85108 FEOICSCDSEFEO3E 1276 Gease FESpuesEsiboveee leu?
64884 eSFEGEFDOSeF10FE 959 Bot 16. ROGSa#F BBDSYsooe »: 636 65364 1637303q2DB7BSD0 817
64892 D3FE3EOCO63710FE B70 Seley WeuPuCuPaiuueo7r S92 85372 1832393S2BRDBFDY 813
54300 UD3FEO1003B086F18 681 GS132 S1S9SB3620NSWBEB 432 65380 132E343124C4C6D9 813
64808 OS7AB32B0BDD6E00 692 ES 120) Bea SeQeOte tL Sse “85 65388 12e9302CiFCACCDD #803
64316 7CADS73E02371817 SEB Bigs cocucoenie cee 85356 102528281BD103E2 603
Gu924 BC18FS7SCB7B10FE 1091
wiss2 3o0losiei0rensre ass SS16% yHEOSOSeuss36320 S29 Geu12 ODIGePIFIZOEFOES BUS
GYSYO OS3EZOEFOSAFSCCB 782 85172 HIMESS2ONBYSDSS3 708 65420 OCISiE1BOEEYESEF 804
64348 1SZOFB1BDD230631 626 Eline. aeeneueaaeneas me 65428 OA1S1S9160SEBEDF4Y 6801
64956 3E7FDBFE1FDO7A3C 1083 =
64354 20C70S3B10FECS14 787 Bat OG. 314 tte 15595954) “708 Bewu! oveccocoscoovces °°
GS204 YCYStE47S¢48204F S61
BANK-SWITCHING RAM
PRACTICAL 2068 BANK-SWITCHING
by Stan Lemke
Although some bank-switching applications might
encompass seemingly insurmountable programming
obstacles...there are many others that can be
accomplished with ease! I'd like to present three
bank-switching examples/applications that can be
adapted and expanded on for a wide variety of uses.
BANK SWITCHING THEORY--FROM A LAYMAN'S PERSPECTIVE
What is bank switching? In very simple terms, it
is a way to direct the computer to switch between
different “banks” of memory circuits. This is
accomplished in a program with the OUT 244,VALUE
command, where VALUE defines which memory "banks" are
being used. Although the computer can only talk to
64K of memory (8 banks of 8K each) at any given time,
BANK-SWITCHING can switch in/out different banks of
Memory...and make it appear like more memory. One
little detail that makes this all possible, is that
when you swtich out one memory bank for another, the
memory in that bank remains just the way you left
it...s0 when you return to it, you can continue on
just as before!
Another important detail is that we will only be
working with memory above location 32768. By doing
this, we will not interfere with the computer oper-
ating system and greatly simplify our work. This
means that we will only have an additional 32K of RAM
to work with, but that almost doubles the memory
capacity we are currently working with after sub-
tracting that used by the operating system!
Memory is "bank-switched" in 8K chunks using the
OUT 244, VALUE command. VALUE determines which chunks
are being used. The following table defines VALUE and
the "DOCK" memory addresses that are used.
Now, by adding various values, one can activate
multiple banks of dock memory (i.e.. VALUE = 64+128 =
192 operates on addresses 49152 - 65535). To reset
all banks to the standard memory, use VALUE = 0.
NOTE: We will only be activating chunks with
addresses above 32768 (VALUE = 16 and above). AERCO
FD-68 Users: The AERCO disk system requires that
chunk 1 be active to utilize the disk, therefore, add
1 to your VALUE to keep the disk active.
14
Value Dock Memory Add
1 STO
= o1 - 16383
4 16384 - 34675
cs S45TE - SETET
16 SETes - 46959
33 AGSEG - 49151
G4 49152 - ST345
128 STa44 - 655356
BANK-SWITCHING RAM (where to get it)
Add-on bank switchable RAM can be obtained from
a variety of sources. The AERCO disk .interface comes
with 64K of additional bank-switchdéble RAM built
right in. Another source ie RAM cartridges that plug
into the 2068 cartridge dock such as the one designed
by Tom Bent (Quantum Levels), and once marketed by
Thomas B. Woods, or the one available from Lem
Software (see the ad on the back cover of this
magazine for a 32K RAM cartridge). Other sources of
RAM are available, like the new RAMdisk from LARKEN,
and there are probably others that I am not aware of.
WHAT CAN WE DO WITH IT?
OK, what can we do with this add-on memory? What
is the #1 complaint about 64K computers? They have so
little memory to work with! There is always more data
than memory to hold it! The #1 use for more memory
will be to store more data. So, my first example is a
short data transfer program.
XFER_1 (LISTING A)
XFER_1 is a ZEUS assembler source listing, ready
to be assembled. LINE 270 is set to assemble this
routine starting at 39000 (RANDOMIZE USR 39000).
Following the source file is a dis-assembly of the
routine identifying the memory address,
that address, and the assembler instruction
associated with that address. I would like to thank
AL Schremmer, an active member of the Kansas Area TS
User Group for writing this very helpful and unique
dis-assembler!
XFER_1 is a simple program that will transfer
(COPY) data from one bank to another bank. As
written, 24064 bytes of data are copied from
standard memory starting at address 41300 to the dock
bank, also starting at address 41300. The “source”
bank is the source of the data to be copied...and
could be the dock bank. The “destination” bank is
where you are copying data to, and could be regular
memory (with a little modification). Also, this
example copies data to the same address in the dock
bank, but you can see that this also can be changed
easily.
The way it works is this: after assigning the
destination and source addresses, and the number of
bytes to be copied (LINES 290 to 310), the source
bank is activated (LINES 430 and 440) and 1 byte is
copied into the accumulator and saved by pushing it
onto the stack (LINES 450 and 460). Then the
destination bank is activated (LINES 570 and 580) and
the value at
placing the destination byte back into the source!
This routine works much like XFER_1 above. The key to
this program is the use of the AF and alternate AF
registers, and exchanging these to easily allow the
exchange of the source/destination values.
XFER_3 (LISTING C)
The third example is a merging of the source/
destination data. This application superimposes the
source data on the destination data using the "OR"
function, and is equivalent of overlaying two
pictures on a light board...ending up with one. I've
used this function with my PIXEL PRINT PROFESSIONAL
(desktop publisher) program, to combine (or merge)
two PIXEL PRINT files. As you can sea. the operation
of the program is quite similar to the two above with
a simple modification for the "OR" function. NOTE:
both the source and destination addresses contain the
merged data.
Now, I don't pretend to be a very good assembly
programmer, so I am sure there are many other ways to
do these jobs. But, if I have been able to show you
enough to get your interest peaked, and convinced you
that BANK-SWITCHING is not an impossible task, then
the saved byte is recalled and stored at it's I've accomplished my goal! i
destination address (LINES 590 and 600). The Keep Garmin: and start taking advantage of
destination and source addresses are incremented 2068 BANK ING .
(LINES 670 and 680) while the number of bytes that
are to be copied is decremented (LINE 690). The
number of bytes remaining is checked to see if it is XFER_1
zero (LINES 700 to 720), and if not, the process is 39017 > 211 > out (N),a
repeated. When complete, the source bank is activated 39000 > 33> 1d _h1,NN 39018 > 244 = <244>
(LINES 730 and 740), and the program ends with a piseeeered SAI SOO7 39019 > 241 > pop af
39002 > 161 39020 > 119 > ld (hid,a
RETURN. 39005 >17 > 1d de, NN 39021 > 19 > inc de
39004 > 84 <41500> 39022 > 35 > ine hl
XFER_2 (LISTING 3)
39005 > 164 39023 > 11 > dec be
A second form of data transfer useful in Soon : > 2 ao eeaet 39028 > 120 > Id a,b
bank-switching is the ability to "swap" data between 39008 > 94 SrOne 2 ae : orc ne
banks. This is the function of routine XFER_2. Where 3 7 3 jr_nz,
XFER_1 merely copied data from one bank/address to sera 2 $2 are eon Soares cae baeen
another, XFER_2 performs a swap function, copying the 39011 > 211. > out (n,a Seas > 62 > ld a,
data from the source into the destination, and then 39012 > 244 <244>” Reieag oi : oe Onva
39013 > 26 => 1d a, (de? x
39014 > 245 > push’ af ocen ecan ast see
39015 > 62 > 1d a,N 39033 50> nop
39016 > 225 <225>
LISTING B
LISTING A 00390 ; SOURCE BANK = 1 (AERCO) F
bee. pes 00400 ; SOURCE BANK = 0 (OTHER) ooole XFER_2
3 = 00410 3 4
00020 ; : 00030 3 PRACTICAL
3 00420 5 H os
peiveeid BANC GunTCHTig 00430 XFERI LD A,1 ; SOURCE BK 0080 | BEN aoe TUNE,
90080 5 00440 OUT (244), 3 ENABLE Ii 00060 | HHHteteeteteeeteedee
00060 5 tHe HHH Eee SOAS LP Ae (ES 5 CORD Ss: VACHE 00070 ; + THIS SAMPLE PROG. +
00070 ; + THIS SAMPLE PROG. + CORED, PUSH AF GU SAVE LF, 00080 ; + WILL SWAP 24064 +
00080 ; + WILL COPY 24064 + ooaeo 5 00090 ; + BYTES FROM MEMORY +
. i } + ADDRESS 4130 +
gore t+ vieg can Percy sesso Soi a ta
s 00500 ; NEXT, ENABLE THE DEST. :
00110 3 + STD. RAM TO 41300 + 00120 ; + OF THE DOCK BANK. +
00120 ; + OF THE DOCK BANK. + 0051013", (BANK, (AND STORE, JHE OO1SO § HEHE
O01S0 5 Ht 00520 ; SOURCE BYTE THERE oo1a0; . f
0150 3 (c) S D LEMKE 1988 ae i 00140 5 a
00160 5 coerce ae ee anni Aen COTHERD 00170 ; LEMKE SOFTWARE DEVELOP.
00170 ; LEMKE SOFTWARE DEVELOP. 3 00180 3 2144 WHITE OAK
$ 00570 LD A,225 ; DESTINATION 2
ie. nae Bosse ur (aan ay eansue ty gue gs Min, Be ere
ROS pee Pgarii we eres 00590 FOP AF ; RECALL S. VALUE perce
00210 ; - 00400 LD (HL), 3 STORE IT 00220 j
00220 3 O01 5 00230 ; GETTING STARTED...
00230 ; GETTING STARTED... 00620 5 00240 3 SET SOURCE, DEST, AND
00240 ; SET SOURCE, DEST, AND 00830 3 INCREMENT THE SOURCE 00250 ; NUMBER OF BYTES
00250 ; NUMBER OF BYTES 00640 ; AND DEST. ADDRESSES. 00260 5
00240 ; 00650 ; CHECK TO SEE IF DONE. 00270 ORG 37000 =; CODE ADD.
00270 ORG 37000; CODE ADD. 00660 5 00280 ;
00280 ; 00670 INC DE ; SOURCE + 1 00290 LD HL,41300 ; DEST. ADD.
00290 LD HL, 41300 ; DEST. ADD. 00680 INC HL ; DEST. + 1 00300 LD DE, 41300 ; SOURCE ADD.
00300 LD DE, 41300 ; SOURCE ADD. 00670 DEC BC ; LENGTH - 1 00310 LD BC, 24064 ; LENGTH
00310 LD BC, 24064 ; LENGTH 00700 LD A,B ; "B" INTO ACC. 00320 ;
00320 5 00710 OR ©; SUM WITH “cH 00330 5
00330 ; aaa 00720 JR NZ,XFER1 3 "BC" = 0 ? 00340 ;
00340 3 00750 LD A,i ; RESTORE S. BANK 00350 ; BEGIN BY ENABLING THE
00350 ; BEGIN BY ENABLING THE 00740 QUT (244),A 3 ENABLE IT 00360 ; SOURCE BANK AND SAVING
00360 ; SOURCE BANK AND SAVING 00750 RET 3 ALL DONE 00370 ; THE SOURCE BYTE
00370 ; THE SOURCE BYTE 00380 3
00380 ; 00390 ; SOURCE BANK = 1 (AERCO)
15 00400 ; SOURCE BANK = 0 (OTHER)
00810 + LISTING ¢
00420 5 00010 XFER_3
00430 XFER2 LD A,1 ; SOURCE BNK 00020 3 ---------: manner 00450 LD A, (DE) ; LOAD S. VALUE
00440 OUT (244),A 3 ENABLE IT 00030 ; PRACTICAL 00460 PUSH AF =; SAVE IT
00450 LD A, (DE) ; LOAD S. VALUE 00040 ; BANK-SWITCHING 00470 ;
00460 EX AF,AF” 3 SAVE IT 00050 5 00480 5
00470 ; 00050 5 HHHHHHHH ett 00490 5
00480 ¢ 00070 ; + THIS SAMFLE FROG. + 00500 ; NEXT, ENABLE THE DEST.
00890 ; 00080 ; + WILL MERGE 24064 + 00510 ; BANK, AND STORE THE
00500 ; NEXT, ENABLE THE DEST. 00090 ; + BYTES FROM MEMORY + 00520 ; SOURCE BYTE THERE
00510 ; BANK, AND STORE THE 00100 ; + ADDRESS 41300 OF + 00530 5
00520 ; SOURCE BYTE THERE 00110 ; + STD RAM AND 41300 + 00540 ; DEST BANK = 225 (AERCO)
00530 ; 00120; + OF THE DOCK BANK. + 00550 ; DEST BANK = 224 (OTHER)
00540 ; DEST BANK = 225 (AERCO) OO1SO 5 tHtt ttt teRtE Ett e 00560 ;
00550 ; DEST BANK = 224 (OTHER) 00140 ; 00570 LD A,225 ; DESTINATION
00560 5 00150 ; (c) S D LEMKE 1988 00580 OUT (2447,A ; ENABLE IT
00570 LD A,225 ; DESTINATION 00140 3 00590 POP AF RECALL S VALUE
00580 QUT (244),A 3 ENABLE IT 00170 5 LEMKE SOFTWARE DEVELOP. 00600 OR (HL) 3; “OR" DEST VALUE
00596 LD A, (HL) 3 LOAD D. VALUE 00180 5 2144 WHITE OAK 00610 LD <HL),A ; STORE DEST.
00800 EX AF,AF? ; SWAP VALUES 00190 3 WICHITA, KS. 67207 00620 PUSH AF ; SAVE SUM VALUE
00610 LD (HL),A ; STORE DEST. 00200 5 — 00430 5
00620 5 00210 5 — 00640 5 ..... ENABLE THE SOURCE
00830 ; ..... ENABLE THE SOURCE 00220 3 00450 ; BANK, AND STORE THE
00640 ; BANK, AND STORE THE 00230 ; GETTING STARTED... 0060 ; "SUM" THERE
00850 ; DEST. BYTE THERE 00240 ; SET SOURCE, DEST, AND 00470 3
00860 3 00250 ; NUMBER OF BYTES 00680 LD A,1 3 SOURCE BANK
00870 LD A, 1 3 SOURCE BANK 00260 5 00690 QUT (244),A ; ENABLE IT
00680 OUT (244),A 3 ENABLE IT 00270 ORG 39000; CODE ADD. 00700 POP AF; RECALL "SUM"
00690 EX AF,AF’ ; SWAP VALUES 00280 ; 00710 LD (DE),A ; STORE S. BYTE
00700 LD (DE),A ; STORE S. BYTE 00290 LD HL, 41300 ; DEST. ADD. 00720 3 —
00710 EX AF,AF? ; RESTORE AF 00300 LD DE,41300 ; SOURCE ADD. 00730 5
00720 ~~. 00310 LD BC,24064 3 LENGTH 00740 3 INCREMENT THE SOURCE
00730 00320 ; 00750 ; AND DEST. ADDRESSES.
00740 3 INCREMENT THE SOURCE 00330 ; 00760 ; CHECK TO SEE IF DONE.
00750 ; AND DEST. ADDRESSES. 00340 ; 00770 3
00760 ; | CHECK TO SEE IF DONE. 00350 ; BEGIN BY ENABLING THE 00780 INC DE ; SOURCE + 1
00770 5 00360 ; SOURCE BANK AND SAVING 00790 INC HL 3 DEST. +1
00780 INC DE ; SOURCE + 1 00370 ; THE SOURCE BYTE 00800 DEC BC ; LENGTH - 1
00790 INC HL ; DEST. + 1 00380 5 00810 LD A,B 3 “E" INTO AC
00800 DEC BC ; LENGTH - 1 00390 ; SOURCE BANK = 1 (AERCO) 00820 OR Cs SUM WITH "C”
00810 LD A,B ; “EB” INTG ACC. 00400 ; SOURCE BANK = 0 (OTHER) 00830 JR NZ,XFERS ; “BCY = 0 7
00820 OR C —;_ SUM WITH "Cc" 00410 5 00840 LD A,1 3 RESTORE S. BANK
OOB30 JR NZ,XFER2 3 "BC" = 0? 00420 5 00850 OUT (244), 3 ENABLE IT
00840 LD A,1 ; RESTORE S. BANK 00430 XFERS LD A,1 3 SOURCE BNK 00860 RET 3 ALL DONE
008S0 OUT (244),A : ENABLE IT 00440 QUT (244),A 3 ENABLE IT
00860 RET 3 ALL DONE
XFER_2? XFER_S
39000 > 33> 1d-h1,NN 39000 > 33> 1d h1,NN
39001 > 84 <41300> 39001 > B4 <41300>
AFRSOFTWARE® | z=)" ai
39005 > 17 > 1d de, NN 39003 > 17 > 1d de,NN
397004 > 84 <41300> 39004 > 84 <41300>
Presents: 39005 > 161 39005 > 161
AAA ALA . 39006 > 1 > 1d be, NN 9006 > 1 > 1d be, NN
Powerlul And Inexpensive 39007 > 0 <2a064> 39007 > 0 <24064>
A 397008 > 94 37008 > 94
Business Software 39009 > 62 > Id a,N 39009 > 62 > 1d a,N
‘nclair” S901 > 1 <1> 39010 > 1 <1>
For"Timex-Sinclair 39OLL > 212 > out (N),a 39011 > 211 > out (Nya
B9O1Z > 24a <244> 39012 > 244 <284>
Computers 39013 > 26 > Id a, (de) 3901S > 26 > Id a, (ded
39014 > 8 > ex af,at’ 39014 > 245 > push’ af
39015 > 62 > 1d a,N 39015 > 62 > 1d a,N
39016 > 225 = <225> 39016 > 225 — <225>
39017 > 211 > out (N),a 39017 >/211 > out (N),a
39018 > 244 = <244> 39018 >°24a 0 <2a4>
39019 > 126 > 1d a, (nid 39019 >'241 > pop af
39020 >8 => ex af,af? 39020 > 182 > or (hl)
39021 > 119 > 1d (hl),a 39021 > 119 > 1d thl),a
39022 > 62> 1d a,N 39022 > 245 > push at
39025 > 1 <i> 39023 > 62 > 1d a,N
YUS-ZX Financial Report Generator. 397024 > 211 > out (N),a 39024 > 1 <i>
Printout Of Sane .. a 39025 > 244 © <244> 39025 > 211 > out (N,a
39026 >8 => ex af,af? 39026 > 244 = <244>
APPOINTMENT SCHEDULER 39027 > 18 > 1d (ded,a 39027 > 241 > pop af
39028 >8 => ex af, af” 39028 >18 > 1d (de),a
s pat 39030 > 35 > inc hl 39030 > 35 > inc hi
39031 > 11 > dec be 39031 > 11> dec be
Send ASE For Fe Caaog 39032 > 120 > 1d a,b 39032 > 120 > 1d a,b
ae Onn rar ie 39033 > 177 dor c 39033 > 177 dor
1605 Pennayiania Ave, 39034 > 32> jr _nz,DIS 39034 > 32. > jr _nz,DIS
Wo. 208, 39035 > 229. <229> 39035 > 229 <229>
Mari Beach, FL33139 39036 > 62 > 1d a,N 39036 > 62 > 1d a,N
(305) 531-6464 39037 > 1 <> 39037 > 1 <i>
“FLORIDIANS ADD SALES TAX 39038 > 211 > out (N),a 39038 > 211 > out (Nd,a
Dealer nquiros invited 39039 > 244 © <244> 39039 > 244 = <244>
39040 > 201 > ret 39040 > 201 > ret
16
AERCO FD-68 DISK SYSTEM
AERCO MERGE FUNCTION
by Larry Zunk
Larry Zunk of Zunk Custom Electronica (4800 East
Cedar lane, Norman, Oklahoma
73071),
shares a few
routines for the AERCO FD-68 disk drive system. Larry
has programmed a powerful software package for the
FD-68 called “CADZ"
issue, or write to the
details).
This is a tip for all Aerco FD-68 users. The
basic MERGE function has never been available, but a
simulated merge canbe accomplished.
Rule #1: line numbers must be consecutive. Rule
#2; get rid of all variables. Rule #3: is make sure
there is enough room for both listings.
It works like thie. In the immediate mode, type:
CAT “first program.BAS",
CLEAR 65535
above
(watch for review in upcoming
address for further
POKE 23635,PEAK 23627
POKE 23636,PEAK 23628
CAT “second program. BAS",
(NOTE: Execution will
POKE 23635,86
POKE 23636,104
LIST
SUPER DETAILED DISK DIRECTORY
by Larry Zunk
The following program listings are for the AERCO
FD-68 Disk Drive System. I must give credit to Mowgli
Assor for his user tips in the SEP/OCT '87 issue of
TDM. His machine code routines are the heart of these
programs.
Listing 1 is a 32 column detailed disk direc-
tory. Listing 2 is a 64 column detailed directory for
use with the Advanced Video Modes software by BEAVER
COMPUTER PRODUCTS. Either version can be run in BASIC
or compiled with the TIMACHINE compiler by NOVELSOFT.
The directory gives file name, type, length,
location, auto start line numbers, length of vari-
ables, active chunks, and tracks allocated for each
file, Although the information is the same, I prefer
the 64 column version because everything fits on one
line and it gives a much cleaner screen display.
My system is double-sided double-density. so
some changes to the machine code in the data state-
ment may be required for other systems. The disk
directory is on track 0 sectors 2 and 3. The code
sets the start of the buffer at E290h (58000 decimal)
and reads track 0 sector 2, then increments the
buffer address held in the HL register by 512 bytes.
Then it sets the B register to 3 and reads sector 3,
The AERCO user manual states that a single-density
system has 256 bytes per sector and a double-density
system has 512 bytes per sector (I assume that a
quad-density system would have 1024 bytes per
sector). This is what will need to be changed for
systems other than DD/DD.
LISTING 1
10 REM !USR 62000
28 REM LINT +LEN,LNLOC,UVAR,BUF
»TYP,LOC,F,E
3@ REM !LEN P§<=27
40 REM ! List
5@ REM | OPEN
6@ FOR F=59967 TO 59999: READ
E: POKE_F,E: NEXT f: RANDOMIZE U
SR_59967.
70 DATA INT 62,3,211,244,205,6
6,53,1,2,0,33,144,226,205,56,53,
1,3,0,33,144.,225,205,56,53,205,1
30,53,62,1,211,244,201
80 LET BUF=58032,
90: LET P: ASDATCHRBINSCRAROL
ROBUTUAR™
108 CLS PRINT INVERSE 1;" FI
LE LINE# vaRS = NA
HE TYPE BYTES LOC CHUNK’
NUERSE Q)8T 0,21; OVER 1;
Z
17
110 LET LOC=BUF: LET TYP=PEEK L
OC#3+1: LET LOC=LOC+1: LET E=LOC
+10
120 IF PEEK LOC<>® AND LOC<E TH
EN PRINT CHRS PEEK LOC;: LET LOC
sLOC+i: GO TO 1280
HE EF" SOE" SSo. ver ten
258 GO SUB 300: LET LNLOC=E
160 GO SUB 300: LET VAR=E
170 IF TyP=13 THEN LET LEN=6912
180 PRINT TAB 10; "{PS(TYP TO
TYP +2) | TAB 15; LEN; TAB 21;
490 IF TYP=1 AND LNLOC<10000 TH
EN PRINT “U"j}LNLOC;TAB 27;LEN-UA
Ri
200 IF TYP=1@ THEN PRINT LNLOC;
TAB 27; INT, (VAR/256) -2;
B10 IF TyP=13 THEN PRINT 16384;
220 PRINT TAB OQ; "="
230 IF LOC<,@ THEN PRINT P
EEK LOC; LET LoCsLoc+1: GO
TO 230
240 POKE 23689,PEEK 2368941: PR
INT OVER 4; “7 aes
250 LET BUF=BUF+S2
258 PRINT TAB @; A
270 IF PEEK 23589=2 THEN PRINT
81;AT_1,0; INVERSE 1; HIT E&
NTER_TO_ CONTINUE 3 INVERSE
@: PAUSE @: GO TO 190
230 IF LOC>S8992 THEN STOP
299 Go TO 110
30@ LET E=PEEK LOC+256#PEEK (LO
C#1): LET LOGsLOGs3: RETURN
310 °REM ! CLOSE tt
9999 ERASE “S2COLDIR.BAS
"S2COLDIR.BAS",
HOVE
LISTING 2
1@ REM !USR 50000
20 REM !INT +LOOP,LNLOC,VARS,L
EN,LOC,BO .NF
80 REM !LEN P$¢=27
4@ REM iT
1 LIS
5@ REM ! OPEN &
Listing Continued Next Page
(POKE prog, vars)
stop here, and all you
will see is the second listing.) Then also
immediate mode, type:
in the
(POKE prog, 26710)
DATA INT 62,3,211,244,205,6
1,2,0,33 7/144, 226,205,660, 335
133,144,228 ,205 66 53,205,
62,1,241,2da,.201
59967 TO 59999: READ
NEXT: f: RANDOMIZE U
6@ RANDOMIZE USR 61450: POKE 2
3578 ,21: PRINT #4;CHR$ 3+CHRS 62
FCHRS @
70 LET LOOP=16: LET Loc=58031:
DIM B(25)
80_LET P4s"BASDATCHRBINSCRAROL
ROBUTUAR™
90 PRINT AT_0,0; INVERSE 13" F
ile Name Typ:Bytes+Vars :Line: Aad
df: Chunks: Tracks tszeezeeeezeeE" |
INVERSE @
100 FOR F=4 To LooP
: LET B(N) =PEE
IF binissa T
HEN PRINT AT fjn-2; CHRS bin) j
438 NEXT n: LET. VARS=B (1) #341:
PRINT TAB _10;".";PS (VARS TO VARS
140 LET LEN=B (12) +2564B(13)
150 LET LNLO(=B{14) +2564B (15)
158 LET _VARS=B (16) +2562B (17)
170 IF B(1)=0 THEN PRINT VARS T
AB 20; "+"; UBN-VARS;TAB 27; (LNLOC
AND LNLOC (19838) 5
180 IF Bii1)=3 OR B(1}=8 THEN PR
INT LEN; TAB S2iLNLOC;TAB 38: IF
b(41)=3 THEN PRINT B(17) ~
190 IF B(1) =4° THEN PRINT 6912;T
AB 32; 16354;
200 PRINT TAB 44}: FOR N=i8 TO
25: IF B(N)>@ THE! PRINT (BUN) = ¢
87 AND BIN) >99)):
210 NEXT N
BBO LET Loc=Loc+s2
230 NEXT _f
240 PRINT * INVERSE 13" HIT
TENTER] OR: (FIRE BUTTON] TO
CONTINUE "; INVERSE @
250 IF INKEY$="" AND STICK (2,1
150 THEN GO TO 250
250 PRINT CHR$.0;: IF Loop=15 T
HEN PRINT CHR$_S4CHRS 0;CHRS @:
POKE 23578,6: STOP
270 LET LOOP=15: GO TO 90
268 REM | CLOSE #
9999 OUT 244,1: ERASE “newdir.ba
s",: MOVE "“néwdir.bas",
SYNX
by Jack Dohany
SYNX is a 46-byte relocatable MC routine for
AERCO disk drive system users. It is given into the
“public domain". SYNX jis short for "Syntax Checker
Switch". This routine allows you to turn off the
BASIC syntax checker when writing or editing BASIC
lines...and to turn it back on. Syntax checking
during program execution remains in effect.
Why? Perhaps you may want to write a BASIC pro-
gram that can be used on a non-AERCO disk system
(perhaps for ALL disk systems). You may want to write
a line like this:
500 SAVE *"TEST": REM for Zebra disk
Well, you can't write it because it will fail
syntax checking. But with the syntax checker turned
off, you can write it.
SYNX works by changing some locations in the
BASIC operating system...normally in ROM, but in RAM
with AERCO disk. A more detailed explanation is
beyond the scope of this article.
Assuming you have the code on disk or tape as
.BIN or CODE file, it can be loaded wherever there's
no conflict with other software. Let us say you want
to load it at Loc 64000: CAT "SYNX.bin",64000 or LOAD
“SYNX" CODE 64000 will do it.
To SAVE the code: MOVE “SYNX.bin",64000,46 or
SAVE “SYNX" CODE 64000,46
To use SYNX (assuming the code is at 64000):
RANDOMIZE USER 64000 turns the syntax checker
OFF, RANDOMIZE USER 64002 turns the syntax checker
back ON.
Here is the SYNX code as a decimal listing,
ready to be POKEd into memory however you wish:
64200 24 64920 24 69043
64001 27 64021 221 64041 243
64002 24 64022 197 6442 237
64003 18 64923 225 64043 176
eaea4 oo 64024 1 64944 251
64005 64025 11 64045 201
65005 @ 64026
64097 253 64027 24
64008 54 64028 5
69007 oO 64029 197
64018 255 64930 255
e4a11 @ 64@31 1
64012 @ 640324
64013 205 64033. 0
64014 13 640549
GAG15 1 25, 64835 17
64016 253 64035 76
£8017. 55% 64037 14
oaaie = 8 64038 (1
64019 255 64es9 9
Of course, if you get a single number wrong, the
computer is likely to crash when you attempt to use
SYNX. So it is a good idea to SAVE before you test it
out.
TIMACHINE ON AERCO DISK ©
by Carl Green
Here is a hint for putting TIMACHINE (Novelsoft)
on the AERCO disk drive system. I found the FD-68
does not like:
1) equations
2) VAL ” i
3) more than one period (.)
4) scientific notations (eg: 6e4)
in the CAT and MOVE statements. Try the following for
TIMACHINE:
1) LOAD the whole program from tape.
2) Move the cursor to the right of the quotation
marks.
3) DELETE the quotation marks
4) Press STOP once, then ENTER twice.
5) Change line 8070 to read:
8070 PRINT AT 19,0: MOVE "TSTIME
+BAS", 9997s MOVE "TSTMLGO.BIN",6
0614,4922: MOVE "TSSETUP.BIN",60
099283: MOVE “TSTIME2. BIN", 26688
,
6) Change line 9997 to read:
9997 CLEAR 60613: INK 6: PAPER
+ BORDER 6: CLS _: PRINT AT 19,02
CAT “TSTMLGO.BIN";: RANDOMIZE U
SR 60614: INK’6: PRINT AT 19,0:
CAT "TSSETUP.BIN",: RANDOM aan
IN",
&
fe}
I
458: LET X=USR 60000: PRINT
19,0: INK 6: CAT “TSTIME2.B
7) OUT 244,1
8) GOTO 8000
9) Put formatted disk in.
10) At the “BACK UP?" option, press "
TIMACHINE should now be on disk with the backup
option operational.
LARKEN 2068 DISK DRIVE SYSTEM
CASSETTE TO LARKEN DISK
by Gaylen W.
From the time I first bought my Timex Sinclair
1000 for a close-out price of $29.95 (around 1982), I
have always dreamed of the day when I could have a
“complete” computer system,
I moved one step closer with the purchase of a
used TS2068 in November of 1966. But I was still
stuck with using cassette tapes. 7
Next I moved up to AAJ "Nicrodrives (for my
7S2068). It was so much faster and easier to us
Over the next few weeks I spent a lot of time con-
verting all of my cassette software to the A&J. I was
happy with the A&J for almost six months...maybe even
a little longer.
Then one day I was over at a friend's home and
saw how nice his computer worked with a disk drive
system. Now that would really be something to have a
disk system for my hard-working Timex Sinclair. But,
it was just too expensive to add one to my computer
system.
Then along came Mr. Larry Kenny of LARKEN
ELECTRONICS, and his floppy disk drive system for the
TS2068. The cost was low enough to give it a try. Now
about a year later, my present system includes the
used 2068, a Larken disk drive system, a dual Amdek
Amdisk III, one Quad 5 1/4" drive, an RX-80 Epson
printer, an Aerco printer interface, a 152040
printer, a 2050 modem, a green screen monitor, and
lots of software. If I had the money that I have
spent on this system over the last six years, I could
buy a "basic" PC compatible, with NO software or
peripheral hardware. I'm going to stick with my
Sinclair.
Now that you know a little of the history of my
hardware system, maybe I can help you convert
cassette (or A&J Micro Drive cartridge) software to
the Larken Disk Drive system. During this last year,
I have, with the help and advise of some fellow
Sinclair users, converted the following software to
the Larken:
Tasword II, Pro/File 2068, Pro/File +5, VuFile,
VuCalc, Timemachine, Pixel Print, Zeus, Loader V, Jet
Set Willy, Voice Chess, Greeting Card Designer,
Banner Designer, Personal Accountant, Kruncher, pro-
grams on the original tape supplied with the 2068,
and many other pieces of software taken froma
variety of sources.
Changing all of this software to the Larken DOS
(Disk Operating System) has one thing in common: the
changes made in each program is a modification of the
BASIC save and load commands, to save the program, to
load and save code, to load and save data strings, to
load and save screen strings. Refer to the Larken
operations manual for instructions on how the
“RANDOMIZE USR 100" is used before each load or save
command in your BASIC program. The following listing
is an example of how these changes were made in
TASWORD II (2068 word processor):
15 RANDOMIZE USR 100: OPEN #4,
“dd": PORE VAL “23e@9", VAL "2"
CLEAR VAL "33279": GO SUB_UAL “4
G03": BORDER VAL “2": PRPER UAL
"a": INK UAL "9": PRINT 84: LOAD
"TWACt"CODE : CLS : LET ISR_U
aL "S9asi"; co To vAL "10"
25 GO SUB VAL "4000": PRINT AT
VAL "2" UAL “Ovi vprint text fil
e", TAB VAL "31
23 PRINT : PRINT “save text fi
Le" TRB UAL "Sai;
@@ PRINT : PRINT “load text fi
Le“; TAB VAL "34";
35 PRINT : PRINT “merge text F
ile"; TAB VAL "31"3 "mn"
40 PRINT © PRINT "return to te
xt File" TAB VAL "31"; ty"
45 PRINT : PRINT “define graph
icsvprinter";TAB VAL "S21"; "3
19
Bench
5@ PRINT : PRINT “save tasword
“VTRE UAL "3an5et"
55 PRINT : PRINT “into Basic";
TAB VAL 31"; "b"
60 PRINT : PRINT “DIRECTORY ;T
AB_Sii"d"
78 PRINT AT 20" ,UAL "a"5”
* THEN
* THEN
THEN
THEN
* THEN
"109" THEN
"103" THEN
"98"
LET
LET
Ler
LET
LET
LET
LeT
isv
THEN LET i=UA
“100" THEN GO TO U
GO SUB
Ey ia
Bt" LINE VAL
710 PRINT #4:
VAL "5a7a4" 54
naee
LET isVAL "15". 60 SUB VAL
GO SUB YAL "9gaa": PRINT
SAVE ag+".Ot" CODE b.g: OLS
SQ LET bSFt VAL "s2216"): GO
SUB VAL "9990": PRINT #4: LOAD
“CODE (a+b), (iFN PIVAL "5
Pvt nce) BUAL “ed" ai: GD
9200 INPUT “Dri
ibe: PRINT #4:
gs78 oLS
INT #4: CAT
60 TO UAL "25"
Line 15 sets up the PRINT #4 command that will
be used before each save and load command in the pro-
gram. Line 60 adds a disk directory choice to the
tasword menu. Line 175 is the IF..THEN statement used
by the menu to call Line 9970. Line 9970 calls the GO
SUB Line 9900 which gives you a choice of which drive
you want and then returns to do the catalog of that
chosen drive. After the directory is done, the pro-
gram will return to the main menu. Please note that
the drive selection GO SUB Line 9900 is also called
by both the load and save lines of the ‘program. Lines
700-710 are the save lines that will save Tasword II
to disk. Line 1030 is the save line that will save
all files (letters or documenta) to disk. Line 2030
ig the load line that will load your chosen file from
the disk to Tasword.
I know that this is a brief description of how
these lines are changed. But there is one area of
concern that has to be dealt with in making these
changes. That area is the memory spaces for the basic
program. You will note in Line 15, that RAMTOP is
lowered to 33279, and then the Tasword code is loaded
above that. The basic program cannot be written above
that address. If you change that address...well,
that's another complete article.
There are a number of ways that the original
basic program can be changed to free up memory space
to allow for these changes. If you are going to
dedicate the program to disk use only, you can go in
and DELETE the cassette VERIFY routines. The Larken
system uses the VERIFY command as a “disk check”
command (refer to the Larken manual for further
details). You can also change or eliminate any
prompts that are displayed on the screen concerning
the loading, saving, or verifying of cassette tapes.
One more way to free up program memory space is
the use of the KRUNCHER program (written by Syd
Wyncoop and available from RMG Enterprises) .
will “modify” the basic listing. It pl
numbers found in the listing inside VAL
ments, and replaces the number 0 with NOT PI, 1
SGN PI, and 3 with INT PI. These tokens have the same
value as the number. There is one problem in using
the KRUNCHER program: it does not change negative
numbers correctly. A -250 will be changed to VAL
"-250", which causes a syntax error in the basic
Program. The way to correct this is, before you
“krunch" the program, list it out and put any
Negative number inside brackets (-250 will be
~(250)). The KRUNCHER program will now convert this
number correctly.
There are some other problems encountered when
converting cassette software to disk. One of the
first ones you may come across, is the program (or
file) name. Cassette allows a name to be ten char-
acters long. Larken allows up to six characters plus
an “extension”. You can see how the program (file)
name and extension are used, by looking at the load
and save lines of the Tasword listing example (please
refer to the Larken manual for rules concerning the
use of extensions). Some basic programs include a
“test statement". testing for the cassette ten
character name length. These statements will have to
be changed to conform to the Larken file name length.
I hope that I have been able to help some of
you with the change from cassette to Larken disk. If
any of you have suggestions on how these changes can
be made easier than I have listed, please feel free
to contact me. I'm Gaylen W. Bench, and my address
is: 900 N.W. Mawcrest Dr. #110, Gresham, Oregon
97030. You can also contact me via CompuServe (ID+
73720,755), or on the RMG BBS (503-656-8072; settings
8/1/N). I will gladly pass any updated information to
TDM readers in a future article.
The information provided in this article is a
long way from being complete on how to convert every
program to disk. If any of you would like assistance
in making these changes, please contact me, and we
will work out some arrangement on how to get the job
done.
One more important find. If any of you have
attempted to put a choice in your basic program to
switch between the Timex 2040 printer and a full-size
printer, you will run into a problem using the Lerken
system. For some reason the Larken system over-writes
the 2068's print buffer. You can find out if you have
this problem by doing an LLIST to the 2040 printer.
If the first thing printed is garbage, then you have
the problem. I tried for about a year to find a
solution. Whenever I would use the PRO/FILE +5 pro-
gram, I could not switch back to the 2040 printer
after using the full-size printer...the program would
“crash". The correction to this problem is so simple!
When you change back to the 2040, the first thing you
need to do is a simple “LPRINT". This clears the 2068
print buffer and now you can print with the 2040
without any trouble.
PASCAL DISK HANDLER FOR THE LARKEN
Article by David Solly
Programs by David Solly and Larry Kenny
Access to the Larken Disk Drive System from within
@ compiled HiSoft(TM) Pascal program is now
possible thanks to the procedures developed by
David Solly and Larry Kenny. This article
demonstrates how to install these procedures and
gives a practical demonstration on how they may be
used within a simple directory program. The
procedures described in this article are valid for
both the Timex Sinclair 2068
versions of HiSoft Pascal,
I have owned HiSoft Pascal, (henceforth Pascal), for the
Timex Sinclair 2068 and the ZX Spectrum for a number of
years now but the drawback with Pascal, as it is implemented
on Sinclair computers, has been that there was no
access a DOS from within a compiled progr: It
ridiculous to put the effort into creating programs
ran like machine code once the source code was debugged,
compiled and transfered to disk only to be forced to go back
to a plodding tape operating system, (henceforth TOS), when
I needed to save or enter data from within the compiled
program. Finally I sat down and did some serious study of
the problem, some d scratching, some question asking
‘especially of Larry Kenny, who is the creator of the Larken
DOS, and Ken Schienan) and some experimentation. The result
of this is the creation of the Pascal disk handler described
below.
The needs of LKDOS are the same as for the TOS. You are
required to provide the name of your program, the starting
address of the program and the lenght of the program. This
is exactly what happens when you type within Basic:
SAVE “Myprogram™ CODE start, length.
Pascal also passes the sane information to the TOS when it
saves out a variable through the use of the procedure:
TOUT ('Myprogram’, ADDR (the name of the
aaved), SIZE (the name of the v. ble being
variable
ved) 5
being
20
nd the ZX Spectrum
The crux of the problem is that, although both languages
generate identical information, LKDOS can extract it only
from within the Basic environment. Therefore, additional
mming is need in order to transfer the save or load
ters to LKDOS from within the Pascal environment.
The first steps towards transfering the required information
form Pascal to LKDOS are to store _th nam the tart
address, and the length of the variajble to be saved or
loa in a safe area of the RAM. This is a simple matter
thanks to the very versatile POKE() function in Pascal.
Unlike the POKE command available in Basic, this Pascal
function can DOKE a number or POKE the contents of a whole
character array starting at a given address The fir:
fifteen bytes of the printer buffer pro to be the safest
area to which all the transfers can be achieved with the
following lines:
POKE (23300, 'Myprogram');
POKE (23311, ADDR (name of variable));
and
POKE (23313, SIZE (name of variable));
these lines in a modified form in the
program within the procedures GETNAME,
DISKSAVE and DISKLOAD.
Upon completion of these steps the next step is to copy the
information from it: ep. in the RAM to th
appropriate routin LKDOS, Again to HiSoft includes
within their implementation of Pascal the procedure INLINE()
wich allows us to embed 280 machine code within a Pascal
procedure to accomplish our enda.
The following is a disassembly of the machine code
the procedure DOUT
used in
00010 NAME EQU 23300
00020 PROGNM EQU 8226
00030 TEMP4 EQU 8243
00040 TEMP2 EQU 8241
00050 NMIF EQU 8194
00060 ADDR EQU 23311
00070 SIZE EQU 23313
00080 SVI EQU 0204
00090 sv2 EQU 0207
00100 ORG 40000
00110 DI Disable interrupt
00120 CALL 98 Turn on LKDOS cartridge
00130 LD HL, NAME Transfer file name
00140 LD DE,PROGNM to progna
00150 LD BC,09
00160 MOVE LD A, (HL) Loop to catch any
00170 a) occurance of CHR® 0
00180 JR NZ,NZERO
00190 LD (HL) ,32 3 & replace with a space
00200 NZERO LDI
00210 LD A,B
00220 ORC
00230 JR NZ, HOVE
00240 LD A,1t
00250 LD (NMIF),A
00260 CALL SV1 ; Save nane
00270 LD HL, (ADDR) Retrieve start address
00280 LD (TEMP4) , HL Set start addr.
00290 LD HL, (SIZE) Retrieve length of save
00300 LD (TEMP2) , HL Set length of save
00310 CALL SV2 Second save data
00320 LD A, (100) Exit cartridge
00330 EL Enable interrupt
(Program provided by Larry Kenny of
Navan, Ontario, Canada K4B 1H9, Tel:
(Listing made using Zeus Assembler)
Larken Electronics, #2
(613) -835-2680)
The procedure DIN contains the same code except that SV1 and
SV2 are replaced with LD1 EQU 198 and LD2 EQU 201. The MOVE
loop insures that the file name is padded out with the
correct number of spaces so that it totals nine characters
and spaces otherwise the file name may
to reload.
e corrupted and fail
The following listing demonstrates how all the procedures
described above are used within a complete Pascal program.
The object of the program is to create a simple telephone
directory which will allow you to store ten names and
numbers, read the information stored in the directory, and
read and write the information stored in the directory to
disk using the Larken LKDOS. There is also a summation of
this article contained in the procedure SONGANDDANCE.
Pascal source code listing
10 {PROGRAM BY: ?
20 (DAVID SOLLY >
30 (1402-1545 ALTA VISTA DRIVE)
40 (OTTAWA, ONTARTO d
50 {CANADA KG 3P4 ?
60 (TEL: (613)-731-2120 ?
70
80
90 {THIS PORGRAM IS FOR ?
100 (DEMONSTRATING HOW THE )
110
120
130
140
150
160
170
180
190
200
(LARKEN DISK DRIVE MAY BE)
{ACCESSED FOR STORING AND )
(RETRIEVING DATA WITHIN A}
{HISOFT(TM) PASCAL PROGRAM. }
{THE PROCEDURES DESCRIBED }
(IN THIS PROGRAM ARE VALID }
{FOR BOTH THE 2X SPECTRUM }
(AND THE TIMEX SINCLAIR )
{2068 VERSIONS OF HISOFT
{PASCL. )
21
210
220
230
240
250
260
270
280
290
300
310
320 ~
330
340
350
360
370
380
390
400
410
420
430
440
450
460
470
480
490
500
510
520
530
540
550
560
570
580
590
600
610
620
630
640
650
660
670
680
690
700
710
720
730
740
750
160
770
780
790
800
810
820
830
840
850
860
870
880
890
900
910
920
930
940
950
960
970
980
990
1000
1010
1020
1030
1040
1050
1060
PROGRAM LARKENDEMO;
CONST
LENGTH = 10;
PN = 23300; {ADDRESS WHERE THE NAME FOR THE SAVE/LOAD)
{ROUTINES IS STORED)
PB = 23311; (CONTAINS THE ADDRESS WHERE THE DATA BEGINS)
PS = 23313; {CONTAINS THE NUMBER OF BYTES USED BY THE DATA)
CAPSLOCK = 23658; (ADDRESS OF THE CAP SHIFT LOCK CONTROL)
oN
= 8; (SWITCHES CAPSLOCK ON)
OFF = 0; (SWITCHES CAPSLOCK OFF}
TYPE
ENTRY = RECORD
NAME : ARRAY (1..10] OF CHAR;
NUMBER : ARRAY Ci.
END;
VAR
10] OF CHAR;
DIRECTORY : ARRAY C1..LENGTH) OF ENTRY;
I: INTEGER;
FINISHED : BOOLEAN;
ANS + CHAR
PROCEDURE DOUT; (INVOKES LKDOS WRITE)
BEGIN
INLINE (#3,
#22,
#20,
#20,
HCC,
#2,
#00,
wo,
#20,
#02,
43,
#00,
mi,
#34,
#62,
#1,
#6,
WE,
ma,
#58,
#64,
END;
#00,
#09,
#0,
#08,
40F,
#22,
#00,
#21, #04,
#00, #7E,
#ED, HAO,
#32, #02,
45B, #22,
#31, #20,
4B);
#53,
aEE,
#78,
#20,
#33,
#cD,
win,
#00,
BL,
#CD,
#20,
aCF,
PROCEDURE DIN; (INVOKES LKDOS READ)
BEGIN
INLINE (4F3, ACD,
#22, #20,
#20, #02,
#20, #F3,
#06, #00,
#24, #11,
#00, HSA,
62,
#01,
436,
WE,
#24,
#58,
64,
END;
PROCEDURE GETNAME;
VAR
#00,
#09,
#20,
#08,
#OF,
#22,
#00,
#21, #04,
400, #7E,
ED, HAO,
#32, #02,
458, #22,
#31, #20,
4B);
#58,
aE,
#78,
#20, #CD,
#33, #20,
#cD, #9,
#1,
#00,
#B1,
PROGNM : ARRAY (1..9] OF CHAR;
BEGIN
WRITELN;
POKE (CAPSLOCK, OFF);
WRITELN ("NAME FOR DISK OPERATION? *)
READLN (PROGNH) ;
CHARACTERS MAXIMUM:
POKE (PN, PROGNM); {STORES THE NAME IN RAM}
END;
PROCEDURE DISKSAVE;
BEGIN
PAGE;
WRITELN;
WRITELN ('LARKEN DISK SAVE ROUTINE’);
POKE (PB, ADDR (DIRECTORY) );
POKE (PS, SIZE (DIRECTORY) );
DOUT;
WRITELN (*SAVED!");
{START ADDRESS FROM WHERE THE)
(DATA IS TO BE SAVED}
(NUMBER OF DATA BYTES TO SAVE)
FOR I := 1 TO 100 DO {PAUSE LOOP)
END;
1070
1080
1090
1100
1110
1120
1130
1140
1150
1160
1170
1180
1190
1200
1210
1220
1230
1240
1250
1260
1270
1280
1290
1300
1310
1320
1330
1340
1350
1360
1370
1380
1390
1400
1410
1420
1430
1440
1450
1460
1470
1480
1490
1500
1510
1520
1530
1540
1550
1560
1570
1580
1590
1600
1610
1620
1630
1640
1650
1660
1670
1680
1690
1700
1710
1720
1730
1740
1750
1760
1770
1780
1790
1800
1810
1820
1830
1840
1850
1860
1870
1880
1890
1900
1910
1920
1930
1940
PROCEDURE DISKLOAD;
BEGIN
PAGE;
WRITELN;
WRITELN (*LARKEN DISK LOAD ROUTINE’);
WRITELN;
GETNAME;
POKE (PB, ADDR (DIRECTORY)); {START ADDRESS AT WHICH THE)
{DATA IS TO BE LOADED)
POKE (PS, SIZE (DIRECTORY)); (NUMBER OF DATA BYTES TO LOAD)
DIN;
WRITELN (*LOADED!");
FOR I':= 1 TO 100 DO (PAUSE LOOP)
END;
PROCEDURE FILLDIRECTORY;
BEGIN
PAGE;
POKE (CAPSLOCK, OFF);
FOR I := 1 TO LENGTH DO
BEGIN
WITH DIRECTORY [13 DO
BEGIN
WRITELN ("ENTRY NO.
WRITELN;
WRITE ("NAME PLEASE (10 CHARS) ');
READLN;
READ (NAME);
WRITE ("NUMBER PLEASE (10 CHARS) ');
READLN;
READ (NUMBER)
END
END;
WRITELN ("DIRECTORY FULL *);
WRITELN;
WRITELN ("HIT ANY KEY TO CONTINUE’);
READLN
END;
", 1, ' OF ', LENGTH);
PROCEDURE READDIRECTORY;
BEGIN
PAGE;
POKE (CAPSLOCK, OFF);
FOR I z= 1 TO LENGTH DO
BEGIN
WITH DIRECTORY (12 DO
BEGIN
WRITELN (NAME, *
WRITELN;
END
END;
WRITELN (‘END OF DIRECTORY’);
WRITELN CHIT ANY KEY TO CONTINUE");
READLN
END;
+, NUMBER);
PROCEDURE SONGANDDANCE;
BEGIN
PAGE;
WRITELN ('Larken Disk Access Routine’);
WRITELN (for!) ;
WRITELN (’HiSoft (TM) Pascal’);
WRITELN ('for the’)
WRITELN ('2X Spectru
WRITELN (’and the’);
WRITELN ('Tinex Sinclair 2068");
WRITELN;
WRITELN ("by");
WRITELN (*David Solly’);
WRITELN (‘and’);
WRITELN (*Larry Kenny’);
WRITELN;
WRITELN ("Hit any key to continue’);
READLN;
PAGE;
WRITELN (Many 2X Spectrum and TS 2068°);
WRITELN ('programers have long wanted to’);
WRITELN ('do serious programing in othe
WRITELN ("languages than the resident’)
WRITELN ('Sinclair Basic. Although such’);
WRITELN ("Languages as Forth, Logo, C,
WRITELN (*Prolog and Pascal have long be:
WRITELN (‘available to Sinclair users one
WRITELN (of the main drawbacks for');
Vy
1950 WRITELN (serious prograsing in these’);
1960 WRITELN ("languages has been the lack of’
1970 WRITELN (disk 1/0 routines. This prograa’
1980 WRITELN (’will demonstrate how the Larken’
1990 WRITELN (‘disk drive system may be’);
2000 © WRITELN (‘accessed for storing and ')
2010 WRITELN ("retrieving data within a‘)
2020 © WRITELN (HISoft(TM) Pascal program. The’);
2030 © WRITELN ("procedures described in this ');
2080 © WRITELN;
2050 © WRITELN (Hit any key to continue’)
2060 © READLN;
2070 © PAGE;
2080 © WRITELN (*program are valid for both the’)
2090 © WRITELN ('2X Spectrum and the Timex’?
2100 = WRITELN (’Sinclair 2068")
2110 WRITELN;
2120 WRITELN ('The tvo disk drive procedures")
2130 WRITELN ("are found in the procedures DIN
2140 WRITELN ("and DOUT. A third procedure,")
2150 WRITELN ('called GETNAME, supplies the’)
2160 - WRITELN (above procedures with a name f
2170 WRITELN (‘storing or retrieving from the
2180 WRITELN ('disk. All these procedures work’)
2190 WRITELW (in conjunction with the resident")
2200 © WRITELN ("procedures ADDR(), SIZE(), and’)
2210 0 WRITELN (*POKE()");
22200 WRITELN;
2230 © WRITELN (The authors hope that these’);
2240 © WRITELN ("procedures will stimulate Pascal’)
2250 WRITELN (‘programing for the ZX Spectrua’)
2260 © WRITELN;
2270 © WRITELN ("Hit any key to continue
2280 © READLN;
2290 PAGE;
2300 WRITELN (‘and the Timex Sinclair 2068 and”)
2310 WRITELN ("encourage other Sinclairests to’)
2320 © WRITELN (write disk routines for the’)
2330 WRITELN ("other languages mentioned’
2340° | WRITELN ('abov
COPY A SCREENS IN COLOR? YES
Now a T/S 2068 artist can copy to paper his/her favorite
screen$ ...... IN FULL COLOR!! All eight Timex paper & ink
colors are accurately reproduced for a full 24 line X 32
column graphics screen duap. The user friendly software
provides for two copy sizes in color or in black & white.
HARDWARE REQU NTS? - An OKIMATE
20 printer w/ COMMODORE PLUG ’n PRINT CARTRIDGE are inter-
faced to a 2068 via a simple COMMODORE serial port eau-
lator circuit; (The same circuit also interfaces a 2068 to
a COMMODORE 1520 4-color printerdplotter.) The I/F hard-
ware sells for $14.95 (bareboard only), $20.95 (complete
kit), and $30.95 (asseabled & tested) - all postpaid.
OTHER SOFTWARE? ~ The OKIMATE 20 is a aany
featured 80/136 col. printer, able to print in draft, NLQ,
italics, reverse (white on black), underline, super/sub-
scripts, six char. sizes, and do 7 or 24 pin color or b/w
graphics. A “patch kit” software program allows CMScript
versions 5/5.2 to print to the OKINATE 20. A hi-mem driver
code block is also available for LPRINT/LLISTing ta the
OKIMATE 20 from BASIC, All software is priced at $8.95
postpaid each and coaes with coaplete user notes,
Send LSASE for additional information and order fore to:
ooo John McMichael oe
@¢¢ = #1710 Palmer Drive ¢¢¢
¢¢¢ Laramie, WY 82070 ¢¢¢
2350 WRITELN;
2360 WRITELN (David Solly');
2370 WRITELN ('Larry Kenny’);
2380 WRITELN;
2390 WRITELN;
2400 WRITELN ("Hit any key to continue’);
2410 READLW
2420 END;
2430
2440
2450 BEGIN (BODY OF THE PROGRAM)
2460 REPEAT
2470 PAGE;
2480 POKE (CAPSLOCK, ON);
2490 FINISHED += FALSE;
2500 WRITELN;
2510 WRITELN;
2520 WRITELN (/MENU’);
2530 WRITELN;
2540 WRITELN (*SELECT ONE OF THE FOLLOWING");
2550 WRITELN ("OPTIONS ');
2560 WRITELN;
2570 WRITELN;
2580 WRITELN (1) READ THE INTRODUCTION");
2590 WRITELN (72) CREATE DATA‘);
2600 WRITELN (13) READ DATA’);
2610 WRITELN ('4) SAVE DATE TO DISK’);
2620 WRITELN ('5) LOAD DATA FROM DISK");
2630 WRITELN ('6) EXIT THE PROGAM’);
2640 WRITELN;
2650 WRITELN;
2660 WRITE ("MAKE YOUR SELECTION ');
2670 READLN;
2680 READ (ANS);
2690
2700
2710 CASE ANS OF
2720 "1? ¢ SONGANDDANCE:
2730 *2* 3 FILLDIRECTORY;
2740 "3" 2 READDIRECTORY;
2750 "4: DISKSAVE;
2760 "5" : DISKLOAD;
2770 "6? : FINISHED := TRUE
2780 END;
2790
2800
2810 UNTIL FINISHED = TRUE;
2820 th
2830
2840 == (FINALE?
2850 PAGE;
2860 © WRITELN;
28700 WRITELN;
2880 WRITELN (‘END OF DEMONSTRATION");
2890 © WRITELN;
2900 WRITELN
2910 EXD.
The Pascal disk handler described in this article and
program works only within a compiled Pascal program and,
regretfull , can not be used to save Pascal source code. The
procedures DIN, DOUT, and GETNAME are completely modular.
They may be copied directly from this program into the
appropriate section of any Pascal program you care to write
which requires access to LKDOS. The procedures DISKSAVE and
DISKLOAD may also be used but remember to change the nase
within the ntheses of ADDR() and SIZE() to the name of
the variable within your program that you wish to save or
load. The ".C” extension required by data file saves within
Basic when using LKDOS is not required by the Pascal disk
handler, however, it may be good practice to use the
extension ".P” to indicate that the data that has been saved
is intended for a Pascal progr rather than a Basic
program. All the LKDOS error codes are operational and will
stop your program without crashing providing that the
compiled code is accessed through a Basic loader progran,
that a PRINT USR is used rather than RANDOMIZE USR and that
there is at least one line of Basic after the USR call.
Example:
10 REM TYPICAL COMPILED PASCAL PROGRAM LOADER
20 BORDER 0: PAPER 0: INK 7: CLS
30 PRINT #4: LOAD "MYPROG.C1” CODE 27000
40 CLS: PRINT USR 27000
50 STOP
9000 REM SAVE LOADER TO DISK
9010 PRINT #4: SAVE “LOADER.B1” LINE 1
On behalf of Larry and myself I hope that this Pascal disk
handler will prove to be useful to all who wish to do
serious programming in Pascal which requires disk access.
ZEBRA/TIMEX FDD DISK SYSTEM
MACHINE CODE TRACK
READER
by Mike Finn
E000 00 Storage space for drive #
£001 00 Storage space for track #
In order to write more advanced programs for the
Zebra FDD disk drive system, we need to know more
about it's operating system. To write disk utilities
we need to be able to see exactly what is on disk
without a basic program using basic TOS (Timex Oper
ating System) commands as intermediary. Since TOS is
stored on the first four tracks of the disk and
downloaded to controller RAM, we need disk reading
and writing utilities to make any desired changes to
TOS, or to develop utilities such as a program which
would recover disk data after accidental erasure.
The following machine code program will read all
the sectors of any given track on the disk and store
the 4K bytes of disk track data in Home RAM at 7000
hex for access by a monitor disassembler machine
code program. The track reader code resides at E000
to E050 hex. I have used both Zeus Monitor and HOT-Z
AROS with it. In fact, I have used HOT-Z AROS in all
3 banks: home, dock, and exrom with 32K non-volatile
memory board in the dock cartridge slot with this
track reader program. The code can be readily modi-
fied to be used at some other location if you are
using some other disassembler.
£002 210070 LD HL, 7000 Beginning ef heme ram
storage for disk track
contents
E005 3AO1E0 LD A, (E001) rs
£008 57 LD D,A D contains track #
E009 3A00EO LD A, (E000)
EQOC 4F LD C,A C contains drive unit #
EOOD FDES PUSH IY Page in ZEBRA interface
EOOF FD210000 LD I¥,0000 ron/ram
E013 CDO600 CALL 0008
E016 FDE1 POP IY
E018 1EOO LD £E,00 E will hold sector #
EO1A 3E1B LD A,1B Disk command to read sector
contained in E of track in
D of drive in C
EOC 320021 LD (2100),A Command buffer
EOIF CS PUSH BC Save request parameters
£020 DS PUSH DE
£021 ES PUSH HL Save current home ram
download address
E022 cDoseé CALL 0608 Calls command sending
routine
E025 cD2606 CALL 0626 This routine controls for
reply from disk
£028 3A0221 LD A,(2102) ‘This: system variable holds
23
TOS error code
E02B A7 AND A Test for error.
E02C 0600 LD B, 00 If an error occurred return
EO2E 4F LD C,A to basic with error
E02F 201¢ JR_NZ,E04D reason in BC
E031 El POP HL Restore home ram address and
£032 110020 LD DE,2000 download from ZEBRA ran
£035 EB EX DE, HL buffer to home
£036 010001 LD BC, 0100
E039 EDBO LDIR
E03B EB EX DE, HL
EO3c Di POP DE Restore sector/track
parameter
E03D 7B LD A,E Pick up next data sector of
EO3E C607 ADD A, 07 track
E040 E60F AND OF
E042 SF LD E,A
E043 C1 POP BC Restore drive parameter
E044 20D4 SR NZ,EO1A If all 16 sectors not read
then loop back for next one
£046 010000 LD BC, 0000 If all 16 read set error
report code to 0
E049 CDO306 CALL 0603 Page out ZEBRA rom/ram
EO4C C9 RET Return to basic to call up
either monitor or error
message
E04D El POP HL Clear stack and return to
EO4E El POP HL basic
EO4F EL POP HL
E050 18F7 SR E049
Relative addressing is used as mich as possible
within the machine code. The only absolute address
calls are to a jump table in Zebra ROM, as described
in Appendix F of the user manual, so all versions of
the FDD should run this code. The only lines that
need to be changed to relocate thie code for use with
another monitor/disassembler are lines 3, 4, and 6.
You will need to change the absolute addresses used
in those lines to match your memory layout.
A basic program is used to load the code from
disk, poke the track and driver parameters, load your
favorite monitor, run the code, and enter the monitor
program to view the disk data. In the basic program
you must replace lines 30 to 38 and 140 to 148 with
your own monitor/disassembler loads and calls. I use
one of the following depending on my system
configuration.
ZEUS monitor:
30 LOAD * "ZEUSMON .COD"CODE
140 IF BC=0 THEN PRINT USR 62137
HOT-Z AROS:
Home: 30 LOAD * “HOT-22,5.COD"CODE
140 IF BC=0 THEN RAND USR 32776
Dock: 140 IF BC=0 THEN OUT 255,0: OUT 244,
240: RAND USR 32776
Exrom: 140 IF BC=0 THEN OUT 255,128: OUT 24
4,240: RAND USR 32776
Mostly I keep HOT-Z in Exrom. There are several
“bugs" in the FDD's initiation routines when dock
bank cartridges are present. I avoid these conflicts
by keeping HOT-Z AROS in exrom from 8000 to DFFF hex.
Once you enter the monitor you shouldn't need to
return to basic, Parameters at E000 and EQO1 hex can
be poked using utilities in the monitor program and
both ZEUS and HOT-Z have code execution routines. For
ZEUS, I use the DISASSEMBLE command to read code and
the EDIT command to read data. The EDIT command is
also used to change parameter values at E000 and
24
E001, I use the GOTO command to rerun the code at
E002. For HOT-Z, the normal read mode can disassemble
code and the display switch (SS-G) will read data. TI
can enter the edit mode (SS-A) to input new parameter
values and use the run command (CSS-RUN) to rerun the
track reader code. HOT-Z has an advantage over ZEUS
for reading files containing basic programs. ZEUS
won't display the characters corresponding to codes
over 127.
For those whose monitors de not include an
assembler. the following loader may be used to enter
the code.
1 REN ZEBRA Disk Drive
Track Reader Utility
by Mike Finn
2 REM This utility requires a
monitor/disassembler
machine code program
3 REM Program allows for
monitor code to occupy
addresses from 8000
to DFFF Hex or from
E051 to FF57 hex
4 REM E000 to E0SO is reserv-
ed for track reader m/c
§ REN 7000 to 7FFF is reserv-
ed for disk data
10 CLEAR 28671
20 LOAD *"TRACKRDR .COD"CODE
30 REN tt ersreeneserens eee tee
32 REN
34 REM Replace th: REM with
a LOAD * instruction to
load your favorite mon-
itor disassembler from
Disk
36 REM
38 REM +t eek EEE EEE EEE
40 PRINT ‘TAB 5;"DISK REVIEWIN
G UTILITY"
SO INPUT "Source Drive (A TO D
> "yDs
60 LET D=CODE D$
70 IF D>=97 AND D<=100 THEN L
IF D<O OR D3 T
GO TO 50
90 POKE 57344,D
100 INPUT "Track (0 to 39) ";T
110 IF T<O OR T?39 THEN GO TO
120 POKE 57345,T
130 LET BC=USR'57346
140 REM steeeee reece
142 REN
144 REM Replace this REM with
IF BC=0 THEN RAND USR
( monitor address )
146 REM
148 REN sete texeeaaeterceenent
150 PRINT "ERROR ";BC;"'!, Please
see user manual," ‘
10 REM Machine code loader
15 RESTORE
20 FOR I= 57344 TO 57425
25 READ A: POKE I,A: NEXT T
30 DATA 000,000,033,000,112,05
8,001, 224,087,058, 000,224 ,079
35 DATA 253,229,253,033,000,00
0,205 ,008,000,253,225 030,000
40 DATA’ 062,027, 050,000,033,19
7,213, 229,205 ,008, 006,205,038
45 DATA 006,058,002 ,033,167,00
6, 000,079,032 028,225, 017,000
$0 DATA 032,235 ,001,000,001,23
7,176,235 ,209,123,198,007,230
55 DATA 015,095,193,032,212,00
1, 000,000,205 ,003, 006,201,225
60 DATA 225,225, 024,247
"S" AND "Q" KEYS WITH "CAT*" COMMAND
by Mike Finn
After reading Ronald Havlen's FDD Express (Oct. i
+97) newsletter about the problem with stopping the from the data buffer before it has to return to the
; 4 u et Fa original calling routine. If a directory printout
scrolling on the CAT* conmand with keys “S" and “Q", contains lees thek-287 Bytes: the We" hey well Tee
z began to, exper sment),end I econ discovered that stop it in the middle of a transfer since it is only
these keys will work occasionally. Here is a small
tested prior to the data printout.
baby aed which shows that an even larger problem Cah a long directory be contained in just 256
exists.
bytes? If you look at the line by line printout of
First, make sure you have a disk with a large the previous sample directory, you will notice that
enough directory to require screen scrolling. One
ore it is mostly empty spaces. The TAB function can
fast way to do this is to run the following program: easily generate all those spaces in just a few bytes
of machine code, so pressing "S" may not necessarily
10 FOR I = 1 To 40 stop even a large directory from scrolling.
2 poe STRS I Zebra ROM subroutines called by the "S" and "Q"
rd : key routin
Now delete that program and enter the following: goo, FyCBOIAE RES 5,(I¥+01) RESET SYSTEM VARIABLE FLAG WHICH
TRACKS KEYHITS
10 LET I= 0 Q00E FDCBOLDE SET 3,(I¥+01) | SET CURSOR MODE L
20 0012 CD3003 CALL 0330 CALL KEYBOARD SCANNER IN
30 LET re i+i 0015 BoO2 DEFB 020B HOME ROM
40°G0T0-20 0017 AF XOR A CLEAR FLAG REGISTER
0018 FDCBO16E BIT 5,(IY+01) TEST WHETHER KEYHIT FOUND
Run this program and while it is running. press goic ce RET Z IF NOT, RETURN TO CALLING ROUTINE
and hold the “S" key. Be patient. as this may take a goin 3a085C LD A, (SC08) SYSTEM VARIABLE - LAST KEY
minute or go. Eventually, the scrolling will freeze 9929 FE61 CP 6h TEST FOR UPPER CASE
and will remain this way until the "Q" key is o92 pe RET C RETURN IF UPPER CASE
pressed. Press the “Q" key and the screen will begin 923 EepF AND DF IF LOWER CASE, CONVERT TO
scrolling again. Immediately press CAPS SHIFT and o98 C9 RET UPPER CASE AND RETURN
BREAK. Enter as a direct command PRINT I. The first Qoa¢ Stop ED AyOD CARRIAGE RETURN
time I tried this it took 33 repetitions of the loop Q998 cp3003 CALL’ 0330 CALL RST’10, IN-HOME ROM
from lines 20 to 40 before the scrolling stopped. 998 1000 DEFB 0010 TO TRANSMIT CARRIAGE RETURN
Other times it took as few as four loops. 002D C9 RET
This shows that the "3" and "Q" keys do work
gometimes...the problem is why don't they work all of
the time.
I've also noticed another problem which may be
similar to the systems non-response to the key.
Let's clean up our disk's directory with the
following program.
10 FOR I= 1 to 40
20 LET A$ = STR$ I
SB: BIG KOU MISS
emis this program, TOS (Timex Operating HE F ATR?
will ask you to confirm that you want to
erase each directory entry. Answer "Y" each time and
take notice of how long a wait there is between when C ) $¥ 404 Gout? be vind
you press "Y" and when TOS recognizes that you to know that you too can
replied. The first six times I answered "Y", TOS
recognized my input immediately, but the following get in on the specials that were
two times, there was noticeable lag. on one occasion, offered! We want to send a list of
T tapped the ae key severe! times before the system our special “AFTER THE FAIR" sale
na responded. ave not had this problem any i ;
other Yee so I assume the problem is not a items so that you can get in on
defective keyboard. (I would like to know if these the savings! All you do i's send a
things I've written about are peculiar only to my Vegal sized SASE and we'll] send it
setup or if they are universal among all Zebra FDD out to you with all due haste!
comners:) AND...1f you would like to order a
Ihave been working on a disassembly of the ;
Zebra interface ROM. I believe the I've identified souvenier packet of specials and a
the subroutine that deals with the use of the "OQ" and program from the show, just send a
"s". I am still investigating this routine and have check or MO for $3 and we’ll send
nothing final to report, but on my first glance, I it out! (Packet includes specials
gee no reason why it shouldn't work consistently. from most attending vendors.)
My initial review shows that when the Zebra in- For RMG’s BIG 70+ page
terface ROM sets up a TOS command to the disk
controller, it then controls a response using a sub- catalog, send $3 7
routine which the Zebra Disk Drive Technical Manual
(page 28) calls RESPOSTA. This routine lies between refunded first order.
0688 hex and O6DB. If TOS wants a write out of text
in the data buffer (2000 to 20FF hex) or from the
error message section of the command buffer (210D to RNG ENTERPRISES
2120), the routine at 03EB to 0423 is galled. It, is 1419 1/2 7TH STREET
this routine which contains the "3" and "Q" key
tests. One noteworthy point about this routine is OREGON CITY, OREGON 9704S
503/655-7484 # NOON-10 TUE-SAT
that it only tests the "S" key at the beginning of
the screen printout of text. It can print 256 bytes
25
printout routine:
O3EB ES PUSH HL SAVE HL, ADDRESS OF TEXT TO BE 0418 C8 RET Z IF SO, RETURN TO CALLING ROUTINE
E PRINTED’ OUT 0419 7E LD A,(HL) PICK UP TEXT BYTE POINTED TO BY
O3EC 3E02 LD A, 02 OPEN CHANNEL # 2; 0330 IS THE HL
O3EE CD3003 CALL 0330 1 CBAS ROUTINE USED TO CALL HOME 041A B7 SRA TESTS TO SEE IF WE REACHED END
O3F1 3012 DEFB 1230 ROM ROUTINES OF DATA MARKER, 00 HEX
O3F3 3EFF LD A, FF POKE SYSTEM VARIABLE WITH FF FOR 0418 C8 RET 2 IF SO, RETURN TO CALLING ROUTINE
O3FS 328CSC LD (SC8C),A CONTINUOUS SCROLL OF SCREEN O41C 23 INC HL IF NOT END OF DATA OR END OF
O3F8 CDOACO CALL OO0A KEYBOARD SCANNER ROUTINE 041D ES PUSH HL BUFFER THEN GET NEXT ADDRESS TO
O3FB FE53 cP 53 IS IT THE "'S'' KEY? BE PRINTED OUT AND SAVE IT
O3FD 2007 JR .N2,0406 IF NOT,CONTINUE WITH PRINTOUT 041E CD3003 CALL 0330 USE CBAS TO RUN HOME ROM RST 10
O3FF CDOAQ0 CALL 000A IF IT IS "'S", KEEP SCANNING 0421 1000 DEFB 0010 FOR TEXT BYTE IN THE A REGISTER
0402 FES CP Sl I$ IT THE "Q" KEY? 0423 18EE OR 0413 REPEAT THE END OF DATA AND END OF
0404 20F9 OR.NZ,03FF IF NOT, THEN KEEP SCANNING BUFFER. TESTS
KEYBOARD UNTIL ' IS PRESSED
0406 CD2600 CALL 0026 THIS DOES HOME ROM RST 10 TO Note that the keyboard is only tested once for
TRANSMIT A CARRIAGE RETURN the "S" key, then up to 265 bytes are printed out
0409 El POP HL RESTORE POINTER TO BUFFER BYTES When this is completed we return to REPOSTA which
O40A ES PUSH HL sends a DONE message to TOS. If TOS has anything else
040B 7C LD A,H THIS TESTS WHETHER HL POINTS TO to output to the screen, it repeats the request for
COMMAND BUFFER 210D HEX OR TO data printout and up to 256 bytes can again be
DATA BUFFER 2000 HEX printed. So we only get the chance to stop the screen
040C 1F RRA CARRY WILL BE SET FOR COMMAND scrolling every 256 bytes.
BUFFER, AND RESET FOR DATA When you try the program, you will see tne
BUFFER READOUTS scrolling freeze occasionally and will have to press
040D 0600 LD B,OO THIS SETS UP A PRINTOUT OF "Q" to restart it. This shows that the routine does
UP TO 32 BYTES, THE MAXIMUM work. I see no software bugs to prevent it from
SIZE OF THE MESSAGE AREA IN THE working all the time (i.e., every 256 bytes). I don't
COMMAND BUFFER know enough about the hardware mechanisms involved in
O40F 3802 JR C,0413 paging in and out the Zebra FDD shadow ROM, but I
0411 0621 LD B,21 THIS SETS UP A PRINTOUT OF UP TO suspect a timing problem or a keyboard debouncing/
256 BYTES, THE MAXIMUM LENGTH OF reading problem more than a software problem. Does
THE DATA BUFFER, 2000 TO 20FF anyone have any suggestions for further study so we
0413 El POP HL RESTORE BUFFER TEXT ADDRESS can nail down the source of this problem?
0414 04 INC B TESTS THAT WE DON’T EXCEED THE
0415 78 LD A,B MAXIMUM SIZE OF BUFFER
0416 FE21 cP ai
by Dick Wagner
The final OLIGER SAFE DOS (Disk Operating Now the user can change disk names at will with the
System) on EPROM is now available as version 2.52. RESTORE /"New disk name" command, This is handy for
The system is more than just a disk operating system.
The additional utilities that John Oliger provides
are interesting and useful.
Hore are some of the latest features:
1. A fast FOR--NEXT loop routine
2. ERASE /"Filename" command
3. improved cataloging (CAT command)
4, RESTORE /"New disk name" command
5. MERGE /"Name" command
Along with these, there is a well-coordinated
version of the MSCRIPT word processor available to
use with SAFE DOS, and it is now possible to operate
two disk drive operating systems at will, without
changing disks! (i.e., OLIGER and LARKEN)
‘The fast FOR--NEXT loop utility provides a con-
stant speed whenever it is used in a program, giving
9 to 50 times faster operation. Only one such loop is
permitted, but it may be mixed with regular BASIC
loops. It is simple to implement. The variable must
be assigned at the beginning of a program, such as:
5 LET /k=1
200 FOR /1 TO 100
255 NEXT
The ERASE /"Filename" command permits erasing
any disk file, which ie great for cleaning up a disk.
All consecutive files following the erased file are
moved up and the catalog is corrected without blank
lines.
The new CAT extended command produces an
improved screen display with an added column which
shows the starting address for code and data files.
The extended command FORMAT /"name" has been in
use from the beginning, as it is always necessary to
give the disk a name (even if the name is only “ ").
26
formatting disks in advance.
With the new MERGE /"name" command, Oliger makes
it possible to append a program to an existing
program, without seriously polluting the current
program!
Printing a hard copy of the disk catalog is a
snap. In the immediate mode, type: LET /P-0 and OPEN
#2,"p",. Now type CAT, and the display is shunted to
the printer in place of the screen.
The OLIGER SAFE disk system and hardware has the
unique ability to be compatible with the LARKEN DOS
(Disk Operating System), which is supplied in cart-
ridge form, and is available from LARKEN (and RMG
Enterprises). Now the user can operate both systems
interchangeably at will (with the LARKEN disk in
drive 0 and the OLIGER disk in drive 1...for
example). The extended commands can be sent to either
disk, and even some OLIGER commands can be used in
LARKEN programs, such as the fast FOR--NEXT loop
routine. As I prefer using the OLIGER DOS, I can
purchase programs available only for the LARKEN DOS,
make the appropriate program changes, and save a
version on the OLIGER.
My personal favorite (and much used) disk oper—
ation is in conjunction with NSCRIPT version 5.3. I
make a MSCRIPT utility save on each disk I use with
this program. A special FILE 0 program is used with
LOAD to display the catalog with a moveable cursor.
Select MSCRIPT, press ENTER and there it is. Issue
the CAT command in the MSCRIPT menu and the catalog
is displayed. Select a program to LOAD into MSCRIPT
as text, and there is the complete text, including a
list of printer commands used with that particular
text. A quick delete of the text leaves the printer
codes to use as reference.
For convenience, I also have the printer codes
(52 possible) stored on the same disk as text. It can
be loaded at any time, referred to, codes added to
the list already in the reference lines, and then be
deleted. The alternative is a printed listt
Many large printers provide graphic capabilities
where every print pixel is defined. John Oliger uses
the OUT 127,n direct port approach for this type of
programming. I prefer to use the LPRINT method
commonly used in many computer programs. The LET /P=0
command will not properly send printer codes greater
than 127. The word from John, is to make 2 pokes:
23300,60 and 23301,3 to overcome this problem, so
that LPRINT CHRS n will work properly.
ROTRONICS WAFADRIVE
LP J
The following utility program was
TIME DESIGNS by Dave Maccarone, a former authorized
supplied to
distributor of the Rotronics Wafadrive. Rotronics is
not longer in business. It should be noted that the
following “Tape Transfer Utility" is for the Spectrum
computer or the Spectrum-Emulated Timex Sinclair
2068.
When transferring software from cassette to
wafer, some kind of transfer utility program is
virtually indispensable. The program given here is
written largely in BASIC and sets up its own machine
code subroutines. The three facilities provided by
the program are:
1. READ HEADER: Essential for analysing the
attributes of files on cassette. Displays the auto—
run line number of BASIC programs, location and
length of code files. It works by reading the program
header which preceeds the file on tape. Beware of
false headers!
2, RECLAIM RAM: This
initializes the Wafaderive
reclaims all RAM used,
served.
3. STOP: This can be used to load # BASIC
program such that it is prevented from auto-running
once loaded. It will thus cope with “anti-merge”
Programs. The auto-run line number is displayed on
screen with the program name. The utility program
itself is overwritten.
The machine code subroutines used by the program
are all relocateable and can be lifted for use in
your own programs. Memory saving techniques have been
used in the BASIC to assist when working in “con—
fined spaces". The program can be further reduced in
size if required by splitting it into three parts
and/or by loading the machine code straight into the
printer buffer as a separate file.
option effectively de-
Operating System and
The BASIC program is pre—
TAPE TRANSFER UTILITY
10 PAPER VAL “S-i INK NOT PIz BORDER VAL
20 CLS : PRINT “Enter number:“"7??
30 PRINT “ 1 READ HEADER~ - loads header from cassette
"5": GO SUB VAL “1e3”
3 displays file attributes.”
40 PRINT '?" 2 RECLAIM RAM“?" ~~ de-initialises WOS &
reclaims RAM.”
SO PRINT 17" 3 STOP"?” = loads BASIC program from cosse
tte, preventing auto- run.”
60 LET a$=INKEY$: IF a$<{“1" OR a$>"3” THEN GO TO 60
70 CLS = GO TO VAL “1007mVAL at
100 REM HEADER READ
110 PRINT ~ HEADER READ “'? "Play tape..
: RANDOMIZE USR VAL “2
3320": CLS : LET a=VAL “23296”
120 LET t=PEEK a: LET a=a+SGN PI
130 PRINT “TYPE:*,”Program” AND (NOT t)s“Number array” AND (t#S
3N PI);"String array” AND (t=VAL “2");"Bytes” ANO (t=INT PI)
140 PRINT '“NAME:”,
a))2 LET oma+SGN PI
150 PRINT '7“LENGTH
“3°
160 LET b=PEEK atVAL “256MPEEK (ati) 7:
TO-RUN:”,2 IF BCVAL “1e4” THEN PRINT b
170 IF {sINT PI THEN PRINT *“START!”,b
180 PRINT £NOT Piy“Press a kay to return to menu“: PAUSE NOT PI
+00 TO VAL “20”
200 REM RECLAIM
210 PRINT ~ RECLAIM RAM ~
220 GO SUB VAL “2e3"! CLEAR ¥:
val “207
300 REM STOP
310 PRINT “ STOP “*?“WARNING!
ted."t GO SUB VAL “2e3”
320 PRINT “The number shown on screen Is
the program would normally auto-run.
"233697: STOP
1000 RESTORE
1010 DATA “221~,"33","0","91", "221" ,"229", "17", "177, "0", "175", "5
37,7205", "86", "57, "221" , "225", "48", "242", "251", "201"
1020 DATA “2197, 712", "205", "46", "10", "2057, "159", "0", "42" ,°997,"
727,734", "101", "92" "42" ," 146" "92" ,"34", "106", "92", "33", "182%,"
72", °4" "244" 478", "195", "232", "25"
1030 DATA “1”,"34", "0", "247" ,"213", "221", "225", "2217, "84", "17, "2
387, 7221", "54", 715", "120", "62", “17, "50", "116" "92" 7205" "50", "7
17627, "255", "50", "6B" , "92", "237", "75" "66", "92", "205", "27", "26"
172077, 7255" 7
1040 FOR asVAL “23320" TO VAL "23405": READ aS: POKE a,VAL as: N
EXT az RETURN
2000 REM CONTINUE?
2010 PRINT '?"Press Y to proceed or any other key to return tom
enu”
2020 PAUSE NOT PI: LET asPEEK VAL 23560":
>CODE “y” THEN RUN
2030 CLS = RETURN
FOR n=SGN PI TO VAL “107:
NEXT
")PEEK G+VAL “256MPEEK (a+1)": LET a=c+VAL
PRINT CHR$ (PEEK
IF NOT t THEN PRINT "AU
RANDOMIZE USR VAL “233407: GO TO
- this progrom is lost when selec
the line from which
’e*Play tape ver ;USR VAL
IF a(>CODE “Y~ AND at
er iiiitisiissietesteiiscii srl tele tistics ii cetecsccestessisissestissistrcsecd
PUZZLE
oF
THE MON TH
Bess sisj ibis ss tosses lest i sett testes titties iiss sctccscsssissststesestessisscctttd
The GIVENS of this puzzle are:
CEDRIC R. BASTIAANS
A. There are 5 children, all more than 1 year old and younger than 25.
B. Their combined ages total 40.
C. The product”of the boys’ ages is 39 times the product of the girls’
ages.
D. Next year, the product of the boys’ ages is an even number of times the
product of the girls’ ages.
CAN YOU COME UP WITH A PROGRAM FOR OUR COMPUTERS TO FIGURE OUT THE AGES OF THE
FIVE CHILDREN???
Exclusive advance
purchase !
SINCLAIR Z2H¥83
We've done it again! Be the first in your street to own
Sinclair’s new baby, the incredible ZX89! Just look at
Buy yours NOW!
DON'T WAIT TILL NEXT MONTH
FOR THE VZ200
Geat the delay — buy your V2200 Dick Smith color computer
now from us over Ihe counter! How do we do it? Simple! As soon as
we heard of the VZ we bribed security guards at the Hong Kong
o factory to shoot machines out the side door!!
wv these features:
%
nen ;
z= * Powerful, Cray 1 compatible processor on one chip! Standard Machine $853.02
6 + 14 Megabytes of RAM on one chip!!
= * Advanced touch-sensitive muitilunction keyboard — each
Lal key has 27 functions!!!
Prices exclude post, packing, sales tax, case, bribe, keyboard,
* Twin 10 Mbyte winchester disks — new, ultra-mini design
noes t maouc! and connecting cables.
exclusive to ZX89I1!! ; :
* Plugs into your own TV, runs ‘or a year on two micro batteries
(not supplied!
+ Auto repeat function on exclamation mark key 11111"
money «
All this for just $35.00 inc sales tax, post, packing, all connecting
cables, and all the software you can get into your house! (Send
cash only — no cheques, credit cards, POs, Lan Choo Labels, ete
accepted. Strictly mail order only.]
UNUX
Now you can have the power of this incredible Unix-like
operating system on your 2X81! Just like Unix but “pruned”
to fit into basic 1k ‘81!
Don’t be feft out when your neighbours switch to Unix! Just
$23,427.63 (on cassette only).
Microbee Pacemaker
real
send
humorous little ditty from Austral
That's right! Now you can control your own heartbeat with
this powerful software package. All connectors plus scalpel
blades supplied — install it yourself with our easy-to-follow B * 4
+ instructions. Lifetime guarantee. Supplied on cassette for usINess soitware
= just $15.95 inc p&p (no refunds). Ask about our very own
life insurance scheme exclusive to Microbee Pacemaker owners!
o MoraiStar: New addition to your word processing suite. Auto-
B [oS he matically searches your text for dirty words, expletives, double-
entendres, etc, and replaces them with ‘clean’ text which even
wa F Nile would approve. A ‘must’ for TV scriptwriters!
Went £t $750.00
zz | Games software
Bur TLO Toolkit: Trying to get to grips with The Last One? Our TLO
ru 7 Toolkit makes the job a cinch, gets TLO working, produces exactly |
iJ the code you want. Definitely the last program you'll need to
c Dam: Build your own Franktin below Gordon obstruction, tend off n u
on the Greeny attackers by puncturing their rubber dinghy. With buy [revised version coming in September). $540.00
eo full colour, sound, fast-moving graphics. $20.00 VIC-370: Give your VIC 20 the power of an 1BM 370 with this
B super conversion program! You too can have mainframe computing
raved Orphan attack: Defend the food-laden table from invading ower at your fingertips in the comfort and privacy of your own
H an hordes of hungry orphans, Can you eat it all before they do? $16.00 home. Requires 1,432 16k RAM packs. On cassette only $37 50
77)
ee innuendo: Not a game but an indispensable addition to your word
ou Hitch-hiker: You're driving along a dark road. Suddenly a hiteh- processing system. Scans your text and inserts dirty words, exple-
hiker appears in the gloom, Can you run him over before he tives, doudle-entendres, etc, in place of ‘clean’ words. A ‘must’
2 | iveps ctear? $520.00 tor TV scriptwriters! $23.95
oo i
Sy rie Seanes ob tii F vdoras Ut iste addveniuute” lye Gormeslants Bumper Bundle: All your favourite packages on one Gdisk! Word.
Hee ee ee eee ee eee torte ihe alt star, The Last One, dBase 11, Visicalc, Unix, MBasic and seven |
Re ee ey eye a ine ilagicen aLagons ligt tye versions of Pascal, all available for the first time on a single diskt |
co od ha leligwers, ie Phines ‘of Tage Find tne $9.20 (discounts for buik orders and educational institutions) |
fe) the mystic Gzknw 2 {Manuals not available at time of going to press.) |
wu Treasure of Pijjj and you've won! $2.00 inc free dictionary . |
20 The Editor: Incredible new ‘artificial intelligence’ program replaces |
Zap the Zits: Can you stop those pesky zits from spreading? Magazine editors with a computer. You too can produce your very
rE ip.
t The faster you zap them, the faster they come back! Find the ‘Own mich magazine in the comfort: and privacy ol your oon
Pen secret ‘Clearasil’ button to win. Full sound and colour. $45.00 homel As used by J Pierce, L Belle and several others. $2500.19.
om
pa
om
zZz2
WILD BILLSCOMPUTER
RODEO
| PO BOX 835539A SYDNEY
| (02) 747 6311
Rieter ss ie si osscetrecieisscstterireisetsscssseststiseississitsitsttsres tests ses 59
THE SOLUTION OF THE PUZZLE OF THE MONTH
Bsc S iii ts tei s ste sescesec se tesserisertjeiectestessseisetessesessississestistst si
CEDRIC R. BASTIAANS
First, we'll give the children some simple names, very simple like a, b, c, d
and e.
‘Then, we will assume that there are 3 girls and 2 boys, Maybe it’s the other way We may thusly write the following program:
around, but we'll see.
Furtheraore, the number 37 can only be composed of 1x39 or 3x13. What this means 10 LET A=13
is that one of the boys simply HAS to be 13 years old, while another boy’s age 20 FOR T=2 10 7
HAS to be divisible by 3. We aay thus write: 30 LET Be3aT
40 REM EQUATION (8): LET SUM=T8(27-28T)
a=13 and 50 FOR D=2 TO 24
beSt, where t=1,2,3....8 (maximum 8, because no one can be older than 24). 40 FOR E=D To 24
70 REM EQUATION (7): LET C=DSE/T
The girls being called c,d and e, we may write (algebraically): 80 IF C=INT(C) AND (D+T) 8(E+T)=SUM THEN
GOSUB 1000
Bede = 1S(St) or cde = to eeeeseceeecevenseneeeees aw 90 NEXT E
Also: 100 NEXT D
ctdtetiSe (St) = 40 or cHdte = 27-3t veeeeeseeeeeeee (2) 110 NEXT T
120 STOP
cde = 8...
and ctdte = &
Aes)
1000 REM NEXT YEAR AND SOLUTION
1010 LET X=(A+1) 8 (B41) (C41)
From equations (1) and (3) follows that: 1020 LET Y=(D+1) #(E+1)
tore 1030 IF X/Y=INT(X/Y) THEN PRINT
‘On the other “THE BOYS ARE "3A;", "3B;
te7 " AND";C3" YEARS, THE GIRLS
ARE "Dj" AND "3E;"."
Equations (5) and (6) contradict and the truth is therefore that we have THREE 1040 RETURN
boys and only TWO girls!
The situation for the 3 boys a, b and c and the 2 girls d ande is therefore
trifle different:
Bde = 13(3t)c or de =tc or cx de/t.,
while, however, equation (2) still holds true!
m
Substituting for c in (2) yields: With this program keyed into my TS2068, it displayed the solution in 11 seconds
Stide/t+d+e = 27 BOYS 13, 9 and 8; GIRLS 4 and 6.
or St2edetdttet = 27¢
or t2tdetdt+et = 27t-2t2
or (det) (eet) = t (27-28) + (8)
A Letter From Fred Nachbaur
(concerning the PC8300 "Timex Clone")
Dear Tim,
1 read with interest Eruce C. Taylor’s article on the pcessoo,
since I have been quite deeply involved with this machine. I would
like to clarify some of the points brought up by Mr. Taylor.
The 50/60 Hz. signal diode serves exactly the same function ‘as pin
22 of the 2X81/TS1000 ULA. The video frame rate has nothing’to do
with the power-line frequency; instead, it is determined by the
that unique blend of hardware and software that constitutes the 2X
display system. In the PC8300, the 50/60 Hz. diode goes to an
input port. Each time through the display loop, the software
checks whether this port is high or low, adjusting the MARGIN
system variable accordingly. .
It should be noted that the machine (and the 2X81, for that
matter) runs about 50% faster, overall, in SLOW mode, if it is in
the 50 Hz. mode. This is because the system has more time between
frames to work oan your program. My ROM improvement (more about
that later) allows MARGIN to be changed by the user, and always
defaults on power-up at 60 Hz. regardless of whether the diode is
connected or not.
29
There is most certainly a clock component on the PC8300 board. It
is exactly the same as on a 2X81, a 6.5 mHz. ceramic element just
to the left of the ULA, in front of the modulator. This behaves
electrically just like a crystal; the only significant difference
is that the frequency stability and precision is less than that of
a crystal. For most jobs, however, the variance is negligible.
There is also most certainly a 280A on the board. This is the
large chip in the centre. Mr. Taylor may have been confused by the
fact that some manufacturers of the Z8OQA give it their own part
number. The designation 780C is particularly common. There is
absolutely no difference between such chips and Z80A’s marked as
such.
Regarding place of origin, it does say "Made in Hong Kong.”
However, the manual is written in the Chinese dialect of the
mainland. Draw your own conclusions.
There is nothing strange about the fact that the 1 REM location is
793 bytes higher on the PC8300, than it is on the 2X81 family.
There is also nothing mystical about memory allocation. The only
difference is the location of the display file. On the 2X81, it
rides above the BASIC program. It therefore moves about as BASIC
lines are added and deleted. On the PC8300, however, the display
file is always at a fixed location BELOW the program area. What do
you get when you multiply 24 lines by 33 bytes per line and add 1
for end-of-file marker? That’s right, 793.
The PCS300 will successfully load ZX&1 programs that are entirely
in BASIC. It does this by looking at the VERS variable, adjusting
how it perceives the incoming data as required. However, because
of the way the display file location was modified, it will NOT
load any BASIC variables associated with the Sinclair program. So
if your program is, for instance, a mailing-list, you can load the
program but not your data.
Worse, the different location of the first program line means that
machine-code won’t run unless it was written ta be position-
independent, and you adjust all USR calls accordingly. Even worse,
no ROM calls are allowed since the ROM routines were completely
scrambled, presumably to help prevent copyright hassles. For all
practical purposes, one can consider that it is completely
incompatible with 2X81 machine-code.
i
There are also some relatively minor, though potentially
troublesome changes in the system variables. You have to be aware
of these if you intend to write machine-code for this computer.
It is not possible to use a straight Timex or Sinclair ROM with
the PCS300. Rather, it isn’t practical. The reason is that the
hardware of the display system is sufficiently different to . cause
the display to be "wonky," for lack of a better word.
I have developed a Timex-compatible ROM which runs all Known low-
res Timex programs, including machine-code. The only pregrams that
won’t run, are high-res programs and SOME "banner" programs.
The other hardware-dependent factor is the character set. These
are NOT housed in the top SiZ2 bytes of the ROM, as on the
30
Sinclair. Rather, they are contained within the custom chip, and
are the reason that high-res won’t work no matter what we do.
There is no point, even, in trying to revector the I register;
actually a blessing, since it is now available to the programmer.
For instance, IM2 (interrupt mode 2> is theoretically usable with
this machine. On the down side, some of the Sinclair punctuation
(: ? and the pound sign)? still remain game characters, and the
grey graphics are right triangles and a "race car".
Otherwise, the PC8300 behaves just like a TS1000 with the mew ROM.
Even the Keywords were reverted to their original Key locations.
Keywords are, of course, entered with a single Key-stroke.
To make up for the few remaining shortcomings of my Timex-
compatible ROM, it sports a few added features, some of which are
not available either on the 2X81 or the stock PC8300. A new BEEP
Keyword turns beeping Keys on ar off. The REM command is now used
to turn the blinking cursor on or off, in addition to its use as a
REMark statement. A BASIC single-stepper ("debugger") is included.
The machine can be set to make an audible noise when loading or
saving a program.
Hardware-wise, there is nothing "different" about the electrical
characteristics of the edge-connector lines. The problem is that
some of them are missing. That’s right, the edge traces go
absolutely nowhere. Most of these (WAIT*, BUSRQ*, BUSAK*, HALT,
NMI¥, etc.) are mat commonly used by external peripherals. At
least one, however, is relatively vital; this is Mix. If this line
is brought out, the FPC8S0G will work with Timex/Sinclair-
compatible 64K RAMpacks. Incidentally, ne modification is needed
to run machine-code in the 32-4&K region. In this respect, it is
like the TS1500.
Even without the M1* or ather lines connected, the ‘8300 works
with most ordinary Timex peripherals, such as the 2050 modem, 16K
RAM, 2040 printer, many "big-printer" interfaces, and so on. One
notable exception would be the Oliger Video Upgrade, again because
the ROM does not contain the character patterns. Other devices
that would not work include anything with an EPROM that overlays
the ROM (e.g. the Memotech parallel interface)? , or contains ROM
calls (e.g. the A&J Stringy-Floppy>.
In my (admittedly biased) opinion, the PC8300 is virtually
useless, unless its ROM is changed to make its claim of "Timex
compatibility" at least S0% justifiable.
Regards,
; =
SoMPLEST Fred Nachbaur
VOLT -METER
THIS LITTLE CIRCUIT DETECTS
ANY VOLTAGE FROK 2 TO 125
sues 2" [ UPDATE!
gottaves, patties wate 15 ed
volts, RoC. oF OC. REI agg
967 Lamp nag be ordered
through any electronic Supporting the Sinclair QL, 288, and TS-2068
Subscription $15.00 Year. UPDATE Magazine,
i 1317 Stratford Ave., Panama City, FL 32404
Hatt rate vials
BEYOND THE TS 1500 (Z2x*81/7TS 1000) USER MANUAL
CRHTYPE i000 (M/C VERSTORN>
by Earl V. Dunnington
Now thanks to Earl, we have a sum-checker program for
the TS1000/TS1500/ZX81, Just like the one Stan Lemke
introduced for the TS2068 in TDM, May/June '88.
The Machine Code is not relocatable preparation for either typing in a program
and the program requires a minimum of 16K or LOADing a program from tape for which a
RAM. Those readers who wish to use the CKTYPE listing is desired
CKTYPE listings should LOAD the final BASIC Instructions for operating the
version before proceeding. programs will be displayed on the screen.
Listing K is the final decimal machine Anyone needing more detailed instructions,
code data, after deleting the unused send an S.A.S.E. to me at 4356 King
portion of the Run Time Package. Included Theodore Dr. Boynton Bch., FL 33436.
in the code is a routine to load a program Comments on this series of articles are
from tape; defeating the autorun. This is also solicited.
Necessary as some programs may contain LISTING K
machine code that would be loaded into the BCL) 64 34 416
area where the code for CKTYPE 1000 will 5113) O° T° B38
reside, if they were allowed to autorun. bre Boe pen cos
The loading routine will not work if you 3 (32) SEG Aer, 216} 126
Play the tape before the end of any program (43) 12633 0 @
Proceeding the one you wish to load. 3 (S23) t 33 220 eo
Listing L is a program that will eet) 427 eee 22. e.
convert the machine code data into the $173) @ | 42, 120 126 25
corresponding character (CHR$) and enter it #138) iba Bs i> a> a.
into the dimensioned string A$. This et O2), (teeta. 85) oe. te!
program will also produce a printout in the Pea ge are peer tse eae
same format as Listing K, so that you can $(115) 42 ie 126
check the data. To correct an error, use See ae are oe
the direct command: eiaaas 3 4
§ (145) 3. 2
LET AS(n)=CHRS c s(1ss) 3a TEE
where n= the string character number and Ze) e
c= the correct decimal code. Figs
WARNING! FROM THIS POINT ON, DO NOT USE (187)
CLEAR, DIM A$, NEW, OR RUN. These commands elias)
would erase As. 3 B85}
Listing M is the CKTYPE printout for bres
Fs
iT
0
B
the program of Listing L.
After entering and checking all of the
M/C data, program lines are to be deleted
or added so that the program will now
appear as in Listing N. After POKEing some
additional machine code into the REM
statement using the direct command GOTO @
and deleting lines 2 to 6, this becomes the
final CKTYPE 1000 M/C program. To SAVE the
program on tape, use the direct command?
GOTO 20.
Listing @ is the CKTYPE for Listing N
before using the command GOTO 2.
When LOADed, the program will?
Set RAMTOP to 32085
POKE the machine code stored in A® into the
addresses above RAMTOP starting with 32054
Clean the memory below RAMTOP in 32
a
anon
BRU,
plist
ea
Q
6
:
8
Et
i
3:
2:
i
i
;
2i
HaMMwEg us Os
DIDDH DDD PSHHSDDLDDYDIDDSHIDOPPOVOPVPGYHH HN PIDYHPPSHHDDALIDpVypvya yyy
QAO
TA s
AS( 204 LPRINT TAB _O;"AS("EN ;
Bz 8 8; c0DE Ag iN) 7TRG 2; CODE Ag INE
; ;CODE ASIN+2); TRB 20; 00
A Bs Ge teee aueasiene “en
i +5)
ASL 205 NEXT N = = -
| Hee hie Lo. oa
Ag(469) O = 121 T COMMAND: TET asin) =cHR ial ua
Ag(469) 111 201 § DATA UHERE NeTHE f
88 (423) [ 355 Bopaeate NUMBER aN THE STRING AN
2 » DATA IS R- RECT VALUE"
REGSs) Bie HE pie Pe
216
Ag isos) 198 35
¢
Bg tet) 38. ile LISTING 4
Ast
Ag(523) 151 237 20 as see
Ag(529) 122 203 170 54 230
AS(535) 225 125 150 21 1497
AS(542) 47 264 185 5 533
Ag(547) 24 343 199 43 S22
AS(SS3) 233 151 200 3 417
Ag(559) 75 69 BOL dad 4567 DS
Ag(565) 119 213 gee Be 28, 1 REM 1254
Ag(571) B25 203 2o3 23: «Base
Ag(577) 127 ied 20d: 163 5429 2 POKE 16510,0
Ag(53S) 56. 35 BOs 3 417 3 POKE 16514/49
Ag(589) 233 125 286 191: 6318 4 POKE 16515;31
AS(595) 203 1 210 2 ere) 5 POKE 16516,125
AS$(601) 150 56 18 ReTURMe oe
Ageia) 234 33° 20 SAUE “CKTYPE”
- 32 FAST
Beiezs) i igs Ltsyine¢ 48 POKE 16983,85
Ag(625) 2 198 7
Ag(631) 36 35 1 6 SQ POKE 16389125
Ag(637) @ 25 Fy 21 6Q@ POKE 3208462
Ag(643) 94 43 3 : 22 744 BOE. geeese
AS(649) 193 209 4 : BB 26
AS(655) 227 115 5 23 90 POKE 32081,115
Ag(BB1) 7 43 8 33 102 POKE 16335,31
AS(6B7) 127 225 to F 440 POKE 16387125
AS(673) 115 201 Bo : to 128 RAND USR 16514
Ag(679) 110 38 30 iB -13@ GOSUB 18 =
to Be 240 PRINT AT 2,9; “SETS
50 : BS SAT 2,8; "1. RAMTOP HAS BEEN SET
20 : B2 AT 2085"; AT 4,0;"2. PRESS ALE
se hae TTER KEY TO MOVE ' M7c_ABOUE RAM
150 PRINT "UGRKING FROM LEFT TO 50 : 3 ALLOWING! MINS B NOTE OF THE F
2 ; 30 2
RIGHT, ENTER A DATA VALUE” 1200 22 190 PRINT AT 6,0;"S. WHEN CURSO
130 FOR N=1 TO 682 793 38 R APPEARS, EITHER TYPE IN A PRO
185 INPUT DATA ia ce GRAM OR LOAD A FRO-GRAM FROM TAP
190 LET ASIN) =CHRS DATA ise te E USING THE DIRECT COMMAND: RAND
2@0 NEXT_N 140 190 .
201 PRINT AT 0,@;"TO OBTAIN A F ise 1aa APOKTEE LeSTEnG?’ ASE SHEE ENE
RINTOUT OF AS, TURN ON PRINT ié0 a1 a WShoabeoe ee
ER_AND PRESS A LET-TER KEY OTHER 7a: 43 CT SOMMAND: RAND USRS2055
ie pee rae ig 1ae EEE Nd ISse
327
20S FOR N=1 TO S82 STEP 6 ABe. «See 299 POKE N+32a85, CODE AsiNi
s 280 NEXT N
ane e B1@ NEU
FOR YOUR QL
ARCHIVE SECRETS
by Real Gagnon
ARCHIVE is a powerful database program but there are some little But sone of these codes have a more unique effect, let’s see
known secrets that can make life easier to every prograamer. some of them.
ARCHIVE version 2.35 introduced a whole new control characters CHR(4)+CHR(c) +CHR(r) is very useful, CHR(c) will be repeated
set which are undocumented in the ARCHIVE reference manual. “r” times.
These characters adds more options to the ARCHIVE PRINT command. If we have PRINT CHR(4)+"%"+chr (80),
f complete list can be found in the ARCHIVE RUN-TIME manual only the character "#" will be displayed 80
available from PSION or maybe from a few OL dealer. times on the screen.
We learn that some characters with ASCII code inferior to 32 get CHR (S) is an underline switch, Try this:
special attention from the ARCHIVE screen driver. PRINT CHR(S)+*SINCLAIR*4CHR(5)+* QL"
Some of these characters have their equivalent in ARCHIVE CHR (6) moves the cursor to the right
language, for exemple, take CHR(1), it can be used to set the CHR (a) moves the cursor to the left
INK color, the fora is CHR(1)4CHR(n) where n is the color number
(same number as in SUPERBASIC). CHR (9) +CHR Cc) Same as SUPERBASIC PRINT TO c,
where c is the column number.
PRINT “This a"+CHR(1)+CHR(2)+"test" is equivalent to
PRINT "This a "sink 2;"test" . 33 CHR (10) noves the cursor down
CHR (11) aves the cursor up
CHR (12) erases the screen like CLS.
CHR (14) then you see the cursor flashing
CHR (15) then you don’t see the cursor flashing
CHR (18) +CHR (n> is the equivalent to the SUPERBASIC OVER
command.
n=O then PRINT with INK on current PAPER
n=1 then PRINT with INK with TRANSPARENT
paper, it’s overprinting.
n=2 then PRINT with INK but XOR the data
on the screen.
CHR (20) +CHR (a) 4CHR(D) creates @ WINDOW.
*CHR(c)+CHR(d) The coordinates are in “characters”.
“a” is the left margin from the left
side of the screen.
"b" is the top @argin from the top of
the screen.
"c" is the right margin from the lett
side of the screen.
"d" is the bottom margin from the top
of the screen.
An exemple will help to understand the
ARCHIVE WINDOW creation.
PRINT CHR(20)+CHR (10) +CHR (15) #CHR (20) +
CHR (30)
will create the fellowing WINDOW.
TOP
LEFT RIGHT
Archive screen
BOTTOM
There is only one active WINDOW at
one tine.
The initial ARCHIVE WINDOW is defined
with the following parameters:
CHR (20) 4 CHR (0) +CHR(O) +CHR (80) +CHR (25)
CHR (21) +CHR (nd scrolls up lines.
CHR (22) +CHR (nd scrolls down "n" lines.
CHR (23) +CHR (nd scroils left "c* colums.
CHR (24) +CHR (nd scrolls right "c" columns.
CHR (26) exchanges the PAPER with the INK, it’s
INVERSE printing.
CHR (27) +CHR (n) is for special CLS.
n=65 , CLS from the cursor position ta
the end of line.
n=46 , CLS from the cursor position to
the end of the screen/window.
n=67 , STORE the cursor position.
n=68 , RESTORE the cursor position.
CHR (30) puts the cursor at the position 0,0
without erasing the screen,
CHR ($1) +CHR (a) #CHR(b) = Same as AT a,b . PRINT at line "a",
coluan *b".
There is more control codes, but these are the most useful ones.
A very useful undocummented feature with the SEDIT command is
hidden in ARCHIVE version 2.35.
binen designing a screen, ARCHIVE provides some graphic
characters to draw boxes. To use them, in SEDIT, do F5 and after
press any key between "a" and "k". When drawing a box, you don’t
have to press each time FS and the right key because SEDIT gives
an easy way to repeat the last typed characters, just keep your
finger on SHIFT and press a cursor key.
These graphic characters are sinilar to those found on IBM
GRAPHICS compatible printer. Run the following program to print
a reference sheet for the 11 new characters with the
corresponding ARCHIVE codes. Your printer must be set for the
IBM GRAPHICS character set #2, but anyway if your printer do not
have the capability to print them, you can still use them in
ARCHIVE!
SuperBasic program to print a
reference sheet for ARCHIVE
graphic characters.
1 REMark by Real Gagnon Montreal May 1988
2:
10 OFEN #4, ser1
20:
30 PRINT #4,7.ARCHIVE graphic characters (SEDIT)
35 PRINT #4," function key F5 then one of the following keys:”
‘37 PRINT #4, CHRS(27)57A73CHRS(18) : REMark set line spacing (opt.)
40 PRINT #4,°KEY *,” CHARAGTER”," ARCHIVE code”
45 RESTORE
a7
50 REFeat loop
60 READ sed, ibm,ql$
70 PRINTH4, CHR$(sed), ,CHRS (ibm), ,q1$
80 IF sed=107:EXIT loop
90 END REPeat loop
95:
100 DATA 97,179,”224" :REMark
110 DATA 98,180, °225°
120 DATA 99,191," 226"
130 DATA 100,192, 7227”
140 DATA 101,195, 72207
150 DATA 102,194, "229°
160 DATA 103,195, °2307
170 DATA 104,196, 72317
180 DATA 105,197,252
190 DATA 106,217,7253°
200 DATA 107,218, 7234"
wun yeheanee
»ARCHIVE GRAPHIC CHARACTERS (SEDIT)
FUNCTION KEY F5 THEN ONE OF THE FOLLOWING KEYS:
KEY CHARACTER ARCHIVE CODE
224
225
226
227
228
229
230
231
232
233
234
PC-IMPORT
How Does This IBM Translator Software
Package From MINNY ELECTRONICS Stack Up??
reviewed by Michael E. Carver
This package bills itself as "a file transfer and
BASIC language dialect translater". PC-Import will
allow the user, who has access to an IBM Personal
Computer (or compatible) equipped with a communication
board and a QL, to “download” and translate MicroSoft
BASIC programs into SuperBASIC, which will run in-
dependently on the QL. After a couple of false starts,
I was able to successfully import [BM BASIC programs
into my QL.
The first problem was hardware oriented. The
manual assumes the user has a ready-made RS-232 cable.
As I built my own cable, there were some problems not
addressed in the accompanying manual. The QL serial
ports only have 5 lines (GND, Txd, RxD, DTR, and CTS).
The IBM serial ports have 9 different lines. In order
for IBM BIOS to send messages out the serial port,
both the DSR and CTS lines must be "true". I had to
"tie" the DSR and CTS pins on the IBM together, to
achieve communications from the IBM to the QL. This
was accomplished by soldering a "jumper" wire between
pins 5 and 6 (CTS & DTR) on the IBM cable end
The other false start was due to an error in the
manual. The manual provides step-by-step instructions
on preparing MS-DOS to send information out its RS-232
port. To accomplish this, the printer output (LPT1) is
directed to the communication output (COMi). The in-
structions successfully got me to this point, but the
steps to direct a copy of the BASIC program to the
printer output was in error. "COPY A: [file_name}
LST1" would not rk. This should have read, "COPY A:
(file_name} LPT With this minor correction, I
received data from the IBM successfully every time.
Before a BASIC program is transferred to the QL,
it must be in ASCII format. The manual provides
sufficient instruction on how to insure the BASIC
files are in ASCII. As the program is “sent” to the
QL, it is written to a file ona user-specified micro-
drive. The transfer portion of PC-IMPORT is straight-
forward and quick. The transfer rate is 4600 baud and
only takes seconds.
The most important part of the program is the
translation of IBM's BASIC into SuperBASIC. As
PC-INPORT is written entirely in BASIC, the
translation is slow. Approximately 2.8 bytes are
translated per second. A 4551 byte program took 27
minutes and 16 seconds to translate. The manual claims
that up to 90 percent of the translation work can be
achieved by PC-IMPORT. I found this figure to be
highly overstated. Only a portion of non-compatible
MicroSoft BASIC is transiated into SuperBASIC (see
Table 1). A fair knowledge of BASIC programming, and
an ability to follow a BASIC listing to fatnom the
flow and logic are required to successfully get most
imported BASIC programs to run on the QL.
As an acid-test, I took a text-manipulation
rogram I had written on an IBM at work as an example.
The program includes no graphics and simply accepts
input from the keyboard. It then breaks up the text
into proper spacing for book card labels. Due to major
differences between the way the IBM BASIC handles
string manipulation and undefined variables, I ran
into many problems getting the program to run on the
QL. Even though I had written the program, it was hard
to follow the logic and correctly make the "hand-
translations" required. One of the major problems was
caused by the incomplete PC-IMPORT translation of the
MID$ command.
A 2048 byte program (translated in 12:09 minutes)
took me about 20 to 25 minutes to re-edit and hand—
translate to achieve proper execution, I would not
have .been able to achieve this without the constant
referral to the MicroSoft BASIC manual. I have had
limited experience in BASIC programming on an IBM. (I
would like to take a second to applaud the Sinclair
BASICs. They are far easier languages to program, than
MicroSoft BASIC.) If you do not have access ‘to a
MicroSoft manual, check your local library, you'll
probably need it. As SuperBASIC will mark any BASIC
line with "MISTAKE", the “hand-translation" job is
made easier. The PC-IMPORT manual does provide a small
table of BASICA commands with SuperBASIC equivalents,
if any.
Most of the programs I imported dealt with
graphics, but none of the graphic commands are
translated by PC-IMPORT. One thing to keep in mind
when translating most BASICs into Sinclair BASIC, is
that their graphic screens are upside down (point 0,0
is in the upper-left-hand corner). Many of the IBM
graphic commands can be imitated by creating
Procedures with SuperBASIC, to achieve the proper
results (see Listing 1).
Some other uses for PC-IMPORT, which aren't
mentioned in the manual, include: downloading BASIC
ASCII files from bulieting boards and translating them
into SuperBASIC. Using QUILL to type in a BASIC
listing, printing it to a microdrive file and using
PC-IMPORT to translate. The printer drive with QUILL
SHARPS IS THE
LARGEST QL
SOFTWARE AND
HARDWARE
DEALER!
WRITE FOR FREE CATALOG
Sharp’s, Inc.
rT N
Rt. 10, Box 459 :
Mechanicsville, VA 23111
(804) 746-1664 or 730-9697
will need to be altered to print a useable file to the
microdrive (see Table 2). One may also use a simple
program to enter an IM listing directly into a
microdrive file (see Listing 2).
I have mixed feelings about PC-IMPORT. It is slow
and incomplete. PC-IMPORT must be viewed only as a
programmer's tool. To achieve full usefulness from
PC-IMPORT, the user must be a fair to accomplished
BASIC programmer. If one has access to an IBM (or
any other "on-line" source of MicroSoft BASIC), a lot
of typing and raw translating can be avoided. I
believe that PC-IMPORT could have been a much better
Program had other IBM BASIC commands been supported
(i.e.. PSET, INSTR, SPACE$, "\" or Interger Division,
LOG). Also commands such as MID$ should have been
fully translated, or RANDOMIZE should have been
translated to the British spelling. I only hope that
Minny Electronics will provide updated versions of
this product in the future.
This program was obtained for review from: RMG
Enterprises, 1419 1/2 7th Street, Oregon City, OR
97045, (503) 655-7484.
LISTING 1
1450 REMark
1452 REMark
MicroSoft BASIC command to draw a box
The two co-ords are adjacent corners of the box
Table 1 -- IBM commands tranglated ‘nta Super BASIC
INPUT DATA THEN
GoTo gosuB TAB
To fs: asc
COLOR sar ‘SGN
Locate LeFTs MIDS
RIGHTS STRINGS ELSE
val
Table 2 -- Quill Printer Driver for ASCII BASIC
DRIVER NAME :BASIC
PORT seri
BAUD RATE 7600
PARITY NONE
LINES/PAGE 255
CHARACTERS /LINE 255
CONTINUOUS FORNS YES
END OF LINE CODE LF
PREAMBLE CODE NONE
POSTAMBLE CODE NONE,
All other options NONE
NOTE: To send the ASCII BASIC to
1454 REMark #ollowed by ink coler -- B= box or BF = Fill microdrive, the above printer
1460 REMark - LINE (IX1,I¥i)-(IxX2,1Y2) ,RND¥241, BF driver must be installed or be
1462 ¢ present on the default drive
i464 REMark ---~ SuperBASIC translation using PROCEDURE box (usually #1) as "PRINTER_DAT".
1466 box IX1,1Y1,1X2,1¥2,RND(1 TO 7),4 Select the Print option from
1468 ¢ within Quill and direct output to
1470 REMark ---- LINE (IX1,1Y1)~(IxX2,1Y2),0,B (Device filename} instead of the
1472 box IX1,IY1,IX2,1¥2,0,0: REMark SuperBASIC translation
1474:
7000 DEFine PROCedure box (x,y,xc,yc,crayon,all)
9005 FILL all: INK crayon
9010 LINE x,y TO x,y TO xeyye TO x,ye TO x,y
9015 FILL oO
MANDELBROT
A Fractal World
UPDATE
by Michael E. Carver
As I was developing the mandelbrot program, I
was unable to drive my monitor in Fl mode. I was un-
aware of the difference between the height of the
characters as sent to the Screen. The following
listings will allow complete viewing of the mini_menu
area and the "canvas" while the Madelbrot Sets are
being drawn (when the QL is in Fi-Monitor mode).
Key-in and run the following Listing. This
contains a short machine code routine to send only 8
lines of pixel information for each character (as
opposed to 10 in Monitor mode). The program will
self-install into the machine and save to MDV1_.
19 REMark 444% loader for SD.YINC assign
28 a*RESPR(68): RESTORE
30 FOR x=@ TO 67 STEP 2
48 READ num: POKE_W (a+x),num
5@ END FOR x
68 SBYTES mdvi_YINC_code,a,68
1988 DATA 17914,56,8316,1,1,28681, 30463, 20935
1818 DATA 6316, 2,2, 28681, 38463, 20835, 28688, 9326
1£82@ DATA 48,-16132, 49, -18816, 8319, -22528, 17914, 12
1938 DATA 28681 , 38463, 20835, 28672, 20085, 12668,8,40
1949 DATA 2e672, 20085
printer.
THE MOST COMPREHENSIVE
RESOURCE FOR THE SINCLAIR
QL. GET YOUR COPY TODAY!!
More and more QL owners are discovering the excellent new book by
Mike de Sosa — TAKING THE QUANTUM LEAP: The Last Word On
The Sinclair QL.
This 280 page book is chock full of useful programs and original
programming examples. Chapters on using the bundled software and a
look at the latest hardware and software releases. Written for both the
novice and more advanced users. Priced less than most software
packages and nearly two pounds of information!
$26 (USA).
Exclusively available trom:
TIME DESIGNS
29772 Hult Road, Colton, Oregon, 97017, USA. Telephone (503)
624-2658. ‘
VISA and MASTERCARD accepted.
For a sample QL and Spectrum magazine, send $3
Insure that your Master Mandelbrot cartridge
contains a copy of the newly created code
(YINC_code). Insert (or merge) the following listing
into the BASIC listing of the Mandelbrot program:
1985 CALL yine
2555 yinc=RESPR(68): LBYTES mdvi_yinc_code,yine: CALL
yine
2985 CALL yince
3783 CALL yinc
4685 CALL yinc
4665 CALL yine
36
SUGEE REGAL GSES 92209 92002 99 02 980 OGD 0999 B99 99D 9S TTBS BERN UCR I RD OR TII TIRES GS BD GR IGIRRIORGR:
Time Uesigns testis
GRAN, Archivist MP, Text8?, & Mailbag
by Mike de
QJump's QRAM v. 1.16 * x * * 1/2
Earlier versions of Tony Tebby’s QRAM,
tested as part of the Sandy SuperQBoard
system, troubled me, but now I realize that
this was minly due to flaws in the system
and not in the QRAM software, itself. Then
there were the spurious rumors that Tony had
designed QRAM to be incompatible with the
software of some of his competitors (Super—
charge and Qliberator, to name two). What-
ever the whole truth, much is now improved.
QRAM now seems to work well with SPEED-
SCREEN, Trump Card and other disk interfaces
and RAM packs, but not with FLASHBACK or
TurboQuill+--two top-notch programs.
QRAM comprises RAM-based utilities for
the QL: a full multitasking front end, pop-
up menus (within your Psion programs), fast
and versatile RAMdisk software, dual-
keystroke hotkeys, screen and window dumps,
spoolers, a good compatibility with Tebby's
QDOS and SUPERTOOLKIT II and other software,
and many other utilities.
QRAM, already very efficient as it comes,
offers many opportunities for customization.
In ite "stock" configuration, it "comes up”
in the standard QL dual-screen format.
Keying Alt / from the SuperBASIC format or
within Psion or other programs presents the
initial pop-up menu with six main options
(FILES, JOBS, CHANNELS, PRINT, WINDOW DUMP,
OPTIONS, and severai redundant controls for
QUIT, HELP, and moving the menu window. Two
methods of selecting options are always
available: by means of a pointer control-
lable with the cursor or QIMI (QL Internal
Nouse Interface) and by keying the first
letter of an option. The SPACE bar is
usually used to select an action or file,
and ENTER to execute a selected command.
QRAM is most economical in the use of
keystrokes required to get into, out of, and
between programs, especially if one custom
izes the BOOT and HOTKEY files. As many
runs of one or more programs can de
multitasked and switched between
permits and this capability
Grabber, a
as memory
is enhanced by
utility which modifies programs
such as Psion’s QL QUILL so that they don't
gobble up all available memory. A fraction
of a star is deducted for its sometimes dif-
ficult or skimpy documentation and because
it is not, at least in this version, compat-
ible with some important new programs. if
TASKMASTER is the Mercedes Benz of full-
featured multitaskers, QRAM is the BMV,
handier and superior in some ways.
37
HOT TIPS: Grabber-modified Psion programs
and RAMdisk software (RAMprt) is usable
separately without QRAM.
About $55, but make sure it's version 1.16!
A.R.K.'s ARCHIVIST MP * * * * 1/2
Applied Research Kernel Distribution’s
ARCHIVIST MP database manager is not an up-
grade of ARCHIVIST 128, but a quantum leap
forward. MP is for Multi-file Programmable:
it can open and use up to 20 files at a time
and may be programmed at several levels and
in many ways to meet special requirements--
it can access up to 200,000 records (over
100,000 with Trump Card. «It is also com
patible with ARCHIVIST 128 files and screen
formats and can use QL ARCHIVE database,
screen, and export files.)
Making use of Run-time ARCHIVE, it runs
alone but is programmable using QL ARCHIVE
v. 2.36 (ARCHDEV). A control file option is
available by which one can set up a
multi-file system and automatically copy
selected database and screen files to
RAMdisk at turn on, enabling rapid access to
data. Entering the name of a single control
file can initiate use of a comprehensive
system of database files and multiple ecreen
formats. Global searches of various types
can be undertaken among open files.
To simplify matters, ARCHIVIST MP makes
use of a standard 22 renamable fields of up
to 69 characters, one field per line. This
arrangement is extremely practical--most
database designers fail to "keep it simple,
stupid,” and create their own; pitfalls.
ARCHIVIST MP is in many ways comparable
to high-capacity database ‘handlers like
dBase 3: rational menu structures offer
single keystroke access to various functions
and “external” utility programs can be
executed froma "Tools Menu’--the example
program supplied has many useful utilities
including one to sum values in a given field
throughout a file and those to globally
delete, insert, or replace strings of text
in any field of every record. Documentation
is excellent and a tutorial on database use.
A fraction of a star was deducted because
all ARCHIVIST MP fields are string fields,
making it more difficult to compute and
insert the value of interactive mathematical
values than it is using QL ARCHIVE, and
because data is not directly transferable to
external programs as it is using FLASHBACK.
Requiring a minimum of 256K total RAM,
ARCHIVIST MP is supplied on Microdrive cart—
ridges and 3.5" or 5.25" disks. Available
for about $76 (#56 if you return the origi-
nol ARCHIVIST 126 cartridge), using UK
checks, Eurocheque, International GIRO, or
VISA card, directly from ARK Distribution,
Corve Farmhouse, Chale Green, Ventnor, P038
2LA, U.K, (Telephone 0983 79 496). ARK will
also supply QL ARCHIVE v. 2.38, for about
$36, and other software.
Software87's Text®?7 v. 1.06 * * & x 1/2
Digital Precision's excellent text editor
THE EDITOR was subtitled "Chuck Quill Out!"
by its designers, but even the advanced
Special Edition of THE EDITOR failed to oust
QL QUILL from its WYSIVYG ("What you see is
what you get") supremacy, especially after
such great QUILL-enhancers as SPEEDSCREEN,
TurboQuill+, and FLASHBACK greatly increased
the performance of QL QUILL without
decreasing its user-friendliness.
Text®7 promises, repeat, promises to do
just that, but it has a little way to go
before it will cupplant the
easiest of them all,
Text®°7 is billed as a full-featured
WYSIWYG word processor designed for easy use
by amateurs, The printer driver permits con-
cheapest and
figuration for "any type of printer,” but,
if yours is not one of the several pre-
programmed types, it is not directly
configurable without an assembler.
Text®7 is menu-extensive and typeface-
and typesize intensive: it will print any-
thing that your printer can--assuming compat-
ibility--and offers comprehensive functions,
including easy block transfer to other
files, QL QUILL's main drawback. It also
loads QL QUILL doc files,
Text©7 is very compact (64K) and requires
a minimum of 64K RAM expansion (a total of
192K RAM)--more is better. With 256K RAM,
Text®7 is said to load a 3400-word QUILL
udoc file in 12 seconds and a 33000-word
file in 52 seconds. Printers directly
supported in this version include the Epson
FX80, LX600, and DX100; the Silver-Reed
EXP500; the Brother HR10 and HRS; and the
Diablo 630. The FX80 printer driver seems
to work well on my old Star Delta 10
printer, An ASCII printer driver is also
supplied for use with obsolete or
nonstandard printers.
Text®7 ic compatible
MASTER, SPEEDSCREER,
with QRAM, TASK—
FLASHBACK, and SPELL-
BOUND. Founted®7, by the same firn, isa
compatible and easy to use font (or fount)
editor; Fountext66 is a graphic printer
driver for Text®7 that provides more than 20
printer typefaces in different sizes for
Epson-compatible dot-matrix printers. 2488
isa set of dedicated printer drivers for
Epson and NEC 24-pin printers that supports
different print styles and sizes and propor-
tionally spaced typefaces.
Text®7 lies in complexity somewhere
between QL QUILL and The Editor, perhaps
closer to the latter. But, if you are ready
and able to undertake learning some new word
processor concepts, and have a compatible
printer, and can afford it, Text®” should do
38
about anything very quickly.
sent a hybrid,
It may repre-
rather futuristic combination
between a word processor and a desktop
publisher.
The documentation I have is in the form
of a not always clear or complete 60-page
manual; for example, not all commands and
options found in the submenus are covered.
But a revised manual, including a new
tutorial is probably available now.
I had intended todo a full article on
the capabilities and operation of Text®? for
this issue, but late notification of a short
deadline made this impossible. Next time
for sure.
Text©°” is now available directly from
Software 87, 33 Savernake Road, London NW3
2JU, U.K, Airmailed prices for Text®7 and
Founted®” are $75 and $15, respectively.
Fountex®* and 2488 are $45 and $15,
respectively, Payment must be made by
traveler’s check, International GIRO postal
money order, or other check directly payable
at a U.K. bank; add about $8.50 for checks
not so payable!
EMSOFT’S MAILBAG * * * * 1/4
MAILBAG is American software consisting
of database handling programs and screens
for use with QL ARCHIVE, a minimum of 256K
RAM is required. It provides a versatile
database for purposes ranging from a simple
address to small-business use. Its designer
Peter Hale of Boston is high on it, saying
that it is "the most exciting program for
ARCHIVE that has yet been released,” dis~
tinguished from other database applications
for the QL by its great flexibility in
handling names and addresses, its lack of
protection from illegal pirating, and in
offering menu-driven QL ARCHIVE programs. It
also offers mailmerge facilities using
specially prepared QL QUILL documents.
Documentation consists of a 4-page flyer
and a 12-page doc file, but I understand
that you may never have to use the latter.
I dia!
Peter claims that
four respects:
MAILBAG is unique in
a. It prints labels to a U.S. Postal
Service standard
b. It is unprotected
user edited for screen
and listings
c. It prints with versatility
having to change printer _dat files.
ad. The user may design custom formts
for record display on printouts or as
mailmerge documents.
I didn't have a lot
"wring it out" and 1
and may be fully
displays, programs,
without
of time to really
am not a database
person, but from what I have seen it is a
winner. I shaved part of a star because it
should be on runtime ARCHIVE and stand
alone--maybe in its next version.
Excellent work Peter!
MAILBAG is available directly from
EMSOFT, Box 8763, Boston, Mass. 02114-8763
for $19.95 on 5 1/4" 60-track floppy disk or
$21.95 on Microdrive cartridge. No credit
cards. Dealer prices are available.
WEXT TIME: A complete and thorough treatise
on Text®°7 and more hot software.
[
“& COLUMN
by Tim Woods
There is a lot to report on this issue. as 288
activity keeps moving along. But first, an ex-
planation is in order. for those joining us for the
first time. The “Z-COLUMN" is a regular feature that
discusses the newest member of the Sinclair computer
family...the 288 Laptop. While maintaining some of
the characteristics of earlier Sinclair machines (280
CPU, very light-weight/compact design, use of func—
tion keys or combination of keys to execute major
commands, etc.), the 286 achieves a whole new
standard of performance and power. If you haven't
seen one or tried one out yet, there just might be a
computer dealer in your area.
As of this writing, there are three
organizations involved in marketing the Z88 in the
U.S.A. First, there is SSI Computer systems in
Portland, Maine, who distributes the Z88 inventory
from their New England warehouse. SSI is being
advised by The Marketing Clinic, which is run by long
time Sinclair associate. Nigel Searle, who ie also
the former head of Sinclair Research, U.S. division.
And finally, there is another organization near
Chicago. Illinois, called Cambridge Direct Ltd.,
operated by President, Kevin Jeffers. Cambridge
Direct is the exclusive direct marketing arm for the
288. To date, I feel that an adequate job is being
conducted to pomote and market the Z88. There are
several hundred dealers around the U.S. that are
stocking them. A large ad recently appeared in the
WASHINGTON POST newspaper, and very favorable reviews
of the machine are in the most current issues of BYTE
and COMPUTER SHOPPER.
The first issue of Z68 USER. “the official zea
computer magazine” hit the streets in April. The 34
page publication is being produced by the publishers
of QL WORLD Magazine. It looks like it will be a good
magazine as soon as they get rolling along ona
regular schedule. A question and answer column
covered two items that are undocumented in the Z88
User Guide
Another publication, which I am personally
involved in is called CLUB 288. It is a non-profit
bi-monthly newsletter. One unique feature, is that
subscribers can earn points, free gifts. and a chance
to sit on the exclusive "board of directors" by con-
tributing articles, tips, and programs to the
newsletter. You can obtain a sample issue, by sending
a SASE to: CLUB 288, c/o Time Designs, 29722 Hult
Rd., Colton, OR 97017.
New products are just now coming on the market:
a spelling checker, the official Cambridge 300/1200
“matchbook" modem, A "C" Compiler, the Advanced User
Guide, a cassette tape interface to provide security
back up for the RAM cards, and the elusive one meg
RAM cards are still being promised before the year'e
end
As a tip for PIPEDREAM (the on-board word
processor): I have found that following the guidlines
specified for moving the cursor position around,
using TAB, arrow keys, diamond key. etc., that
getting into the habit of using these will develop
faster manipulation of your text. I know this sounds
like common sense, but more often than not, we use
eld typing habits in word processors that can really
slow things down.
39
IS HERE
And we have it!
Sir Clive’s LATEST is now in stock
at RMG!1] This SUPER little laptop
computer with features like:
128K RAM, 32K ROM, BUILT~
IN S/W PACKAGES AND SMALL
SIZE AND WEIGHT (2 LBS! >}
make it a GREAT addition to our
line. As our way of introducing
you to the 288, we are offering,
for a limited time only, with any
288 purchased before 9/30/88,
A FREE CENT. PAR. I/F
A 32K RAM CARTRIDGE
THE PRICE? TOO LOW TO LIST
PLEASE CALL OR URITE!
RMG ENTERPRISES
1419 1/2 7TH STREET
OREGON CITY, OREGON 97045
503/655-7484 * NOON-10 TUE-SAT
FOR SALE: EYE-Q. retail $50. sell
for $35, or best offer. MATCHPOINT,
retail $28. sell for $18, or best é., <a
offer. Shipping included. WANTED:
TECHNI_QL. Chia-Chi Chao, 73
Sullivan Dr., Moraga, CA 94596.
FORTH 79,83 USERS, I would like you
WANTED: Z-TALKER FOR TS1000, Please FREE ADS FOR SUBSCRIBERS to drop me a line to swap in-
contact Merlin J. Raymond, 16822 formation and help. George David
Farmington Rd., Beaverton, OR Johnson, Beaufort Naval Hospital,
97007. PO Box 6204~A, Beaufort, SC 29902.
WANTED: Booklet on 2050 Modem and
é any relevant software. Also full— ra ee i
WANTED: 1/0 PORTS FOR TS1000. sized keyboard. N. Oshane, 197 BOOK WANTED: "S.U.M.-Small User's
BYTE-BACK preferred, but others Morningside Dr. E Bristol, CT Math- Powerful Algorithms". Willing
considered. Contact Merlin Raymond, eee g to pay any reasonable price. Jaime
16822 SW Farmington Rd., Beaverton, 96010. A Cruz-Figueroa, Rt 2 Box 245-M,
OR 97007, (503) 591-7392. Lillington, NC 27546.
WANTED: ZEBRA GRAPHICS TABLET,
w/manual, working or defective (if ,
volt tbo vont Opie of SYNTAX repairapie). New or used wafers for WiLL TRADE: PRO/FILE 2068, for zx
ree ee VOl.52 1 7 ipius., three A&J Microdrives. Send description & :
Quarterlies. $40.00 or free to non-
profit. Peter Hale, Box 8763,
Boston, MA 02114.
price to: W.E. Powden sr., R#1 Box "2°68 for MDO2B. or sell out-right
364. Bridgeport. IL 62417, (make offer). D.G. Smith, R.415
Stone St., Johnstown, PA 15906.
Do you have some equipment or a program that you would like to sell? Looking for something hard to find? Place an
ad in THE CLASSIFIEDS! Subscribers can place one free personal ad in each issue. Ad size is 32 Col. wide (like 2040
paper) and maximum of six lines. For additional lines - $3 each. NON-SUBSCRIBERS and DEALERS: $4 a line.
DEADLINE FOR ALL CLASSIFIED ADS: Two weeks before publication date. Mail your ad to:
TIME DESIGNS MAGAZINE, The Classifieds Dept., 29722 Hult Rd., Colton, Oregon 97017.
DON’T _
PECTERM—-44 (T5—-4.1
MISS OUT! eet Bad Tatil Pte as 7068 )
a On 0, AERCO, Larken disk or tape
and
2-SI/0 Bare Boards
RS-252 Serial Interface For The 2068
With EREE 2050 card
Subscribe Today $50.00 con ea SBH
only $16.95 ( Qureme 48 cowrreuous stares, $6.50 StH )
year
This is a TDM special offer. To order
TIME DESIGNS MAGAZINE CO. or for additional info contact:
29722 Hult Rd., Colton, OR 97017 .
Ed Grey Enterprises
P.O. Box #2186, Inglewood CA 90305
(213) 759-7406
The Grey Hatter BBS & ROP/H
(213) 971-6260
APPLICATIONS SOFTWARE for the QL
MAILBAG An address database you
won't believe. Labels,
Rotary index cards, Zip
sorting, tickler filing
3 column printout, many
automatic features, not
protected 256K+
TAI-I-QL Spreadsheet for IRS tax
returns S84K+
QLAHDLORD Nanages up to 99 units
or buildings and does
Schedule E (Soon) 256K+
$19.95 ea ppd on 5 1/74" DSQD
(+$2.00 on microcartridge)
Agents for ZX/TS Siriusware
4K Wordprocessor with
TS 2040 lower case printer driver
Orders, Catalogues & Dealer infa:
EBMSOFT
P.O. Box 8763, Boston, MA 02114
(617) 889-0830
THE Z88 UNDER 2 LBS.
A Computer Without Compromise
‘Solid-state permanentstorage * Acomputer lth advanced word-procersing, sprea:
and ingenious time- and data-management software built-in « computer whci
completely self-contained, which gives you up to 20 hours active computing trom just 4 AA
batteries, yat which tales and litene toyour lM * A computer witha hll-size keyboard, ina
‘package less than the size of n 82x11, witha fotal weight ofless than 2 Ibs, » The Z88. A
computer without compromiee
WRITE FOR FREE CATALOG
Sharp’s, Inc.
Rt. 10, Box 459
Mechanicsville, VA 23111
(804) 746-1664 or 730-9697
LET YOUR THAGINATION SOfR!
Be sure to stop by our booth at
THE 3RD ANNUAL INTERNATION 2.7
GREAT NW TS MINI-FAIR!
Valuable Coupon!
$5 OFF
Any order for $50 or more
when you include a copy of
this coupon. Use at the Fair
or anytime until 11/1/88.
The LKDOS disk I/F
and EXTENDED BASIC
CARTRIDGE and the NEW
LARKEN RAMDISK will be on display at
RMG’s booth and you are invited to stop
by to see these GREAT PRODUCTS demoed!
MINI-FAIR SUPER BUY!
Order any COMPLETE LKDOS SYSTEM and get
the LARKEN DISK EDITOR and 2 other disk
packages AT Pesce EEy NO EXTRA CHARGE!
Order the LKDOS system WITH a RAMDISK
and we will throw in 1 FREE 32K RAM
CHIP! (Either way, you get over $20 in
FREE items!)
RNG ENTERPRISES VISA _
1419 1/2 7TH STREET * OREGON CITY, OR 97045 * 503/655-7484
™
1
1
¢
eo Foxel Frant PLUS!
ig 1 THE DESKTOP PUBLISHER
te -_ by Lenke SoFtvare
Iexat ; er
Vga What's the PLUS?
tau t PERFORMANCE!
Hee Checkout these SPECS
We 1) avsrnye
i i
letter
hie |
orc!
Hla 5)
la = Teenie conver
Ix 1
© 12) AUTOMATIC and MAHUAL line and
is j character adjustments.
“--/ 3) RESTORE FONT (after wu
BOLD/MODEEN/ ITALIC me
e-cy 4) KEEFVUNDO/’SAVE/LOAD/LOAD ICON
ix 7 Loan sc S SCREENS
1c ' WIDE“HIGH
a
ir 15) QUERY INUERSE/CAPS Lock
Id ft UF TO 16 POINT FONTS
1 at (font package in develorment)
Son) 6) COPY/ERASE/INSERT/DELETE“HEW
ia 1
fad t 7) AERCOST.
1 POL
WMexI gy
we 1
i aT
Tet
45 i
168 BE il
ay GOH RY W2
wot FON £ tt
ret FON AR! we
35! FONT LIBRARY 13
eee le CNT D
ao PIX
weet CH
function
iT ETP
Gre
[SorTHARe]
Fivel Prand Frofessicna
9 RERCO GSK jee
* Pixel Print Plus wae
* Ereate up to 28 page
documents
* Print a complete oc
headers lefts @ right
€no more printer adjustments! >
# Uses bank=-switching to print
left and right columns together
# Print multiple Copies!
# Newsletter Format or
*# &Y Eolumn Letter Format
MOTE? printers must be capable
of fe to 98 Dots per inch
S76 to fe8 dots per /ine>
Bit tmage Graphics!!!
* Rutomated Printer Customizing
* SSUD diskette (om AuTO-savE TAPED
* onty $2935 ped. «ORDER wow!>
OLIGER DISK VERSION!
# Same as the AERO
version shove except
for use with the
Oliger Disk interface
* Reguires a minimum of ack
FOM expansione.. €see the
der RAM Cartridge below!>?
# Program comes on CASSETTE
and AUTOeSAVES to OSH. some
editing Gees ¢remo RES?
# onty $f932 ped, (ORDER NOW!
Faxel Frant
Fi atte!
a
For EASSETTE |
& MICROORIVE
* Same as Rerco
except for use
with Tapes
MOVE: Specify either TRFE |
or MICROORIVE,..
# Requires a minimum af 32k
PAM expansionss: C€see the
acer RAN Cartridge below!>?
* only $f932 ped. CORBER nowt
2k RAM CAATRIOGE
* 32h Volatile Memory
* Fits
into the TS=-2058
Partridge Dock *
onty S982
Plus SY shipping
and handling